随笔分类 - MySQL参考手册笔记
摘要:1.正常的连接 2.使用缓存的连接 3.内连接的顺序性,优化程序可对其顺序进行优化,谓词的下沉,先根据其中子句中的条件(最左边的)过滤再进入到内层的表进行匹配。 4.外连接,优化程序不会对其进行优化,完全按照程序员写的顺序进行连接。先匹配行,对根据其中子句中的条件进行判断。 5.内链接可以优化为内链
阅读全文
摘要:对于辅助索引来说,我们需要查询的字段是辅助索引的字段,在辅助索引找到对应的主键(放到buffer中),然后将主键进行排序。根据排序后的主键去查询磁盘表,这样 通过将随机IO变成顺序IO来减少磁盘IO的次数。 对于MyISAM也是这样的原则,首先根据数据行的id对得到索引字段字段进行排序,而非主键,这
阅读全文
摘要:这一篇文章证实了以前对MySQL优化程序的工作原理。 MySQL就像一个人一样,总是聪明的去选择当前最快的方式去查询,而不是像Oracle数据那样死板地根据规格去查询。 查询的要求在于快。而对于数据库来说,最耗时的在磁盘IO,如何减少磁盘IO的次数,成为提高查询速度的最为关键的因素。于是在这种情况,
阅读全文
摘要:对结果集进行分组,有两种方式可以实现,一种是创建临时表,另一种基于索引(B系列的索引)。 通过索引访问执行group by的两种方式,一是所有的范围谓词(where子句)一起应用,二是先执行范围读取,然后再对结果集执行group by操作。 在MySQL中,group by都有排序的效果(实质是根据
阅读全文
摘要:order by优化: order by使用filesort,索引对结果集进行排序。这里介绍一下,使用索引排序的情况,以及不使用索引的情况。 使用索引的情况: 1.当order by未使用的(索引)字段,是常量时(在where子句中); 2.满足最左前缀时; 3.如果索引不包含所要查询的所有列时,只
阅读全文
摘要:DISTINCT是对结果集进行去重,有三点需要注意。 1.在大多数情况下(两者后面所跟的字段相同时),DISTINCT跟group by是等效的,此时DISTINCT可以看作group by的一个特例,DISTINCT会使用到group by。 如: select a,b from tableA g
阅读全文

浙公网安备 33010602011771号