using filesort 一般人的回答是: “当行数据太大,导致内存无法容下这些数据产生的临时表时,他们就会被放入磁盘中排序。” 很不幸,这个答案是错的 ,临时表在太大的时候确实会到磁盘离去,但是EXPLAIN不会显示这些。 The truth is, filesort ...
分类:
数据库 时间:
2018-06-08 17:23:25
阅读次数:
222
优化GROUP BY语句 默认情况下,MySQL对所有GROUP BY col1,col2...的字段进行排序。这与在查询中指定ORDER BY col1,col2...类似。因此,如果显式包括一个包含相同的列的ORDER BY子句,则对MySQL的实际执行性能没有什么影响。 如果查询包括GROUP ...
分类:
数据库 时间:
2018-06-08 16:00:00
阅读次数:
197
派生表和视图的性能 从MySQL 4.1开始,它已经支持派生表、联机视图或者基本的FROM从句的子查询。 这些特性之间彼此相关,但是它们之间的性能比较如何呢? MySQL 5.0 中的派生表似乎和视图实现的方式不同,尽管我从合并的代码基数来看觉得在查询优化上应该是一样的。 派生表仍然以临时表的方式显 ...
分类:
数据库 时间:
2018-06-08 15:55:10
阅读次数:
178
添加索引优化器更高效率地执行语句 假设我们有两个数据表t1和t2,每个有1000行,包含的值从1到1000。下面的查询查找出两个表中值相同的数据行: Java代码 mysql> SELECT t1.i1, t2.i2 FROM&n ...
分类:
数据库 时间:
2018-06-08 15:44:33
阅读次数:
159
[sql] view plain copy print?explain select from user explain select from user [sql] view plain copy prin ...
分类:
数据库 时间:
2018-06-08 14:28:27
阅读次数:
188
用EXPLAIN看MySQL的执行计划时经常会看到Impossible WHERE noticed after reading const tables这句话,意思是说MySQL通过读取“const tables”,发现这个查询是不可能有结果输出的。比如对下面的表和数据: create table ...
分类:
数据库 时间:
2018-06-08 12:05:05
阅读次数:
178
使用 EXPLAIN 执行计划的时候,在 Extra 中偶尔会看到这样的描述: Impossible WHERE noticed after reading const tables 字面上的意思是:读取const tables表之后, 没有发现匹配的行。 通过示例我们重现一下该场景。首先创建两张表 ...
分类:
数据库 时间:
2018-06-08 11:54:35
阅读次数:
227
索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。 一、导致SQL执行慢 ...
分类:
数据库 时间:
2018-06-06 23:49:37
阅读次数:
242
使用系统命令top即可看到如下类似信息: Cpu(s): 0.0%us, 0.5%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 但不知什么含义?google之 I try to explain these:us: is meaning of ...
分类:
其他好文 时间:
2018-06-06 21:48:00
阅读次数:
145
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序列号,包含一组数字 ...
分类:
数据库 时间:
2018-06-05 11:34:25
阅读次数:
170