- 浏览: 1270782 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (608)
- 数据结构 (2)
- AJAX (3)
- 设计模式 (3)
- java (117)
- js (14)
- css (9)
- jsp (10)
- 杂文 (49)
- htmlparser (6)
- 数据库 (29)
- 算法 (14)
- 数据挖掘 (11)
- 电脑杂症 (12)
- 网络爬虫 (7)
- 应用服务器 (9)
- PHP (2)
- C# (14)
- 测试 (3)
- WEB高性能开发 (3)
- swt (1)
- 搜索引擎 (16)
- HttpClient (4)
- Lite (1)
- EXT (1)
- python (1)
- lucene (4)
- sphinx (9)
- Xapian (0)
- linux (44)
- 问题归类 (1)
- Android (6)
- ubuntu (7)
- SEO (18)
- 数学 (0)
- 农业资讯 (12)
- 游戏 (3)
- nginx (1)
- TeamViewer (1)
- swing (1)
- Web前 端 (1)
- 主页 (0)
- 阿萨德发首发身份 (0)
- 软件设计师 (0)
- hibernate (5)
- spring3.0 (5)
- elastic (1)
- SSH (3)
- ff (0)
- oracle 10g (9)
- 神经网络 (1)
- struts2.0 (2)
- maven (1)
- nexus (1)
- 辅助工具 (3)
- Shiro (1)
- 联通项目 (0)
- 2014年专业选择 (0)
- freemarker (1)
- struts1.2 (8)
- adfasdfasfasf (0)
- TortoiseSVN (1)
- jstl (1)
- jquery (1)
- eclipse plugin (0)
- 游戏外挂 (1)
- 推广 (0)
- 按键精灵 (1)
- ibatis3.0 (1)
最新评论
-
水野哲也:
不不不, 这个您真错了!其实是你引用的那个jsp和本身的jsp ...
解析关于jsp页面指令冲突问题contentType="text/html;charset=UTF-8" -
caobo_cb:
import xx.cn.weibo.Util;
[ java版]新浪微博之ruquest_token篇 -
caobo_cb:
你好 Util包没有
[ java版]新浪微博之ruquest_token篇 -
小桔子:
你好!我遇到个问题 max_allowed_packet值总是 ...
mysql查询占用内存,优化的技巧 -
donghustone:
谢谢大神!
用JSmooth制作java jar文件的可执行exe文件教程(图文)
explain是用来分析sql语句,帮助优化的一个命令。
explain的语法如下:
如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。
比如我们执行
这些东西。
id
select查询的序列号
select_type
select查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询。
其中 table 表示是哪个表的数据。
type比较重要。表示链接的类型。链接类型由好到坏的,依次是
possible_keys 是指可以应用到该表的索引,如果为NULL则没有。
key 是指用到的索引。
key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。
ref 是指索引的那一列被使用了。一般会是个常数。
rows 是指有多少行。
extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。
如果值为 not exits : mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。
如果值为 rang checked for each : 没有找到理想的索引。
如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。
如果为 using temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。
如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。
在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。
explain的语法如下:
explain [extended] select … from … where …
如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。
比如我们执行
select uid from user where uname=’scofield’ order by uid执行结果会有
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +—-+————-+——-+——-+——————-+———+———+——-+——+——-+
这些东西。
id
select查询的序列号
select_type
select查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询。
其中 table 表示是哪个表的数据。
type比较重要。表示链接的类型。链接类型由好到坏的,依次是
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL一般情况,至少要达到 range 级别,最好是 ref 级别。否则可能会有性能问题。
possible_keys 是指可以应用到该表的索引,如果为NULL则没有。
key 是指用到的索引。
key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。
ref 是指索引的那一列被使用了。一般会是个常数。
rows 是指有多少行。
extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。
如果值为 not exits : mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。
如果值为 rang checked for each : 没有找到理想的索引。
如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。
如果为 using temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。
如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。
在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。
发表评论
-
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问
2012-09-07 12:12 3087数据导入报错:Got a packet bigger than ... -
mysql 创建 数据库时指定编码
2012-09-03 17:17 831mysql 创建 数据库时指定编码很重要,很多开发者都使用了默 ... -
mysql MERGE 错误(differently defined or of non-MyISAM type)
2012-02-15 11:35 5594错误代码: Error Code : 1168 Unable ... -
Mysql中索引和UNION ALL的使用
2012-02-14 09:52 1472MYSQL描述: 一个文章库,里面有两个表:categor ... -
mongodb
2012-01-23 12:41 2058mongodb 操作记录 mongod --dbpath & ... -
MongoDB2.0.1 出现严重数据丢失问题
2011-12-15 14:05 1719再插入1000W的数据,既然丢失100W多数据。太夸张了吧。 ... -
SQL注入攻击的种类和防范手段
2011-12-03 10:34 1256观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这 ... -
mysql分表的3种方法
2011-10-21 10:11 853一,先说一下为什么要 ... -
mysql explain 知识一
2011-10-19 14:54 1278前记:很多东西看似简 ... -
libmysqlclient.la
2011-07-17 21:15 1404collect2: ld returned 1 exit st ... -
mysql备份
2011-07-09 02:43 1077备份MySQL数据库的命令 mysqldump -hhost ... -
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLIC
2011-06-06 17:08 1655今天,在写触发器的时候,添加了一个更新语句,实在想不通。把更新 ... -
MySQL: ERROR 13 (HY000): Can't get stat of
2011-04-11 19:42 3203但是将LOAD DATA INFILE 换成 LOAD D ... -
mysql查询占用内存,优化的技巧
2011-01-20 15:18 10912在Apache, PHP, MySQL的体系 ... -
linux mysql 启动失败(Can't create/write to can't create PID file: >Permission denied
2011-01-07 10:42 9869>071117 20:53:26 mysqld st ... -
MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it
2011-01-07 10:17 7632如果你在触发器里面对刚刚插入的数据进行了 insert/upd ... -
MYSQL 学习参考资料
2011-01-05 23:19 746http://dev.mysql.com/doc/refman ... -
mysql 定时执行
2010-10-15 13:44 1167首先,这个功能只能在5.1.X之上才能用 CREATE T ... -
安装、重装时出现could not start the service mysql error:0的错误或者start service停止不动时
2010-04-02 00:43 3773关于XP安装mysql-5.1.45-win3 ... -
mysql集群
2009-08-18 18:53 1242相关文章: mysql clus ...
相关推荐
### MySQL EXPLAIN 笔记整理 #### 一、EXPLAIN 命令简介 `EXPLAIN` 是 MySQL 提供的一个非常有用的工具,用于展示查询执行计划。通过它,我们可以了解到 SQL 查询是如何被执行的,这对于优化 SQL 语句、提高查询...
以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. 使用索引:为经常用于搜索的列创建索引可以显著加快查询速度。B树和哈希索引是最常见的类型,适用于不同的查询场景。 2. 避免全表扫描:尽量使用...
### MySQL学习笔记知识点详解 #### 一、MySQL服务管理 **1. 启动MySQL服务** 在Windows环境中,可以通过以下命令启动MySQL服务: ```sql net start mysql ``` **2. 创建Windows服务** 若要手动创建一个...
1.2、Explain工具 1.3、索引下推 1.4、Trace工具 1.5、索引优化最佳实践 2、事务隔离 2.1、事务隔离级别及琐机制 2.2、MVCC多版本并发控制机制 3、Mysql日志 3.1、总体架构 3.2、INNODB日志 4、全局优化 4.1、全局...
本篇学习笔记涵盖了从基础操作到高级特性的全面内容,旨在帮助读者从初级到高级提升MySQL技能,成为一名数据库管理员。 首先,我们从MySQL的启动和管理开始。在Windows环境下,可以使用`net start mysql`命令来启动...
根据提供的文件信息,我们可以整理出一系列关于MySQL的重要知识点与操作命令。下面将详细解析这些内容,帮助理解MySQL数据库管理系统的基本操作、表结构管理以及数据管理等核心功能。 ### MySQL基础知识 **MySQL**...
这份"Mysql学习笔记"包含了对SQL语法的详细整理,对于初学者和进阶者都是宝贵的资源。下面,我们将深入探讨MySQL的一些核心概念和SQL语法。 1. **SQL基础**:SQL(Structured Query Language)是用于管理关系数据库...
这份“MySQL学习笔记”是为准备求职面试和复习基础知识而精心整理的,涵盖了从基础概念到高级特性的全面内容。 一、MySQL基础 1. 数据库与表:数据库是组织数据的集合,表则是数据库中的数据结构,包含列和行。在...
这份“MySQL工作学习笔记”压缩包文件可能是由一位经验丰富的数据库管理员或开发者整理,包含了关于MySQL的深入理解和实践技巧。尽管没有具体的标签来指导,但我们可以从“MySQL工作学习笔记”这个标题推测,内容...
本笔记将深入探讨MySQL优化的关键知识点,包括但不限于索引优化、查询语句优化、存储引擎选择、数据库架构设计以及内存配置等方面。 首先,索引是MySQL数据库中提升查询速度的关键。正确地为经常用于查询的列创建...
本文主要记录了笔者在学习mysql过程中,整理的笔记,试用于1-3年的开发。在学习的过程中做的记录,可以根据实际情况结合理论,来完成数据库查询优化。
最近整理的笔记 SQL执行计划 explain select customer_id,title,content from product_comment where audit_status=1 and product_id=199 limit 0,5; 查询计划的限制 无法展示存储过程,触发器,UDF对查询的...
利用EXPLAIN分析查询计划,理解MySQL如何执行查询,以便调整SQL语句。使用JOIN时,确保连接条件包含索引,并尽量减少子查询的使用。 3. **存储引擎选择**:InnoDB是事务安全的存储引擎,适合需要ACID特性的应用。...
通过PPT和课堂笔记,学习者可以系统地掌握MySQL的基础知识以及高级特性。 1. **MySQL基础知识** - 数据库与表的概念:理解数据库的逻辑结构,包括数据库、表、字段、记录等基本元素。 - SQL语言:学习SQL...
这份压缩包“对于Frank的mysql课程的学习笔记.zip”包含了丰富的学习资源,很可能是学员Kwan1117整理的个人笔记,虽然没有具体的标签,但我们可以根据常见的MySQL主题来探讨一些关键知识点。 1. **基础概念**:...
【标题】深度学习MySQL与数据库系统实现笔记 在IT领域,数据库系统是不可或缺的一部分,而MySQL作为最广泛使用的开源关系型数据库管理系统之一,其在数据存储、查询和管理中的重要性不言而喻。深度学习则是一种人工...
在学习MySQL的过程中,笔记是一个非常有效的辅助工具,可以帮助我们整理思路,加深对概念的理解。以下是一些关于MySQL数据库的关键知识点: 1. **SQL语言基础**: SQL(Structured Query Language)是用于管理关系...
使用EXPLAIN分析查询执行计划,了解数据读取顺序和使用的索引,有助于找出潜在的性能瓶颈。 2. **索引策略**:索引是提升查询速度的关键。合理创建主键、唯一索引、全文索引和普通索引,可以显著提高查询效率。注意...
笔记部分可能包含作者在学习过程中整理的重点、难点解析和实战经验,对深化理解非常有帮助。 综上所述,这个"Mysql高级思维导图.zip"文件将为想要提升MySQL技能的用户提供宝贵的资源,无论你是初学者还是有一定经验...
这份"mysql代码-MySQL of learning test notes book"很可能是某位开发者在学习MySQL的过程中整理的笔记和测试代码集合,对于初学者或者想要提升MySQL技能的人来说是一份宝贵的资源。 1. **SQL基础** SQL...