2. 履行筹划:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t_order index NULL idx_ordercode_我们来分析下MySQL为什么应用全表扫描、文件排序,而没有应用索引扫描、应用索引次序:
orderamount 42 NULL 1000 Using index
履行筹划显示萌芽会应用覆盖索引,并且只扫描了1000行数据,萌芽的机能应当是异常好的。
3. 履行时光:13ms
大年夜履行时光来看,SQL的履行时光晋升到本来的1/20,已经达到我们的预期。
总结:
覆盖索引是select的数据列只用大年夜索引中就可以或许取得,不必攫取数据行,换句话说萌芽列要被所建的索引覆盖。索引的字段不只包含萌芽列,还包含萌芽前提、排序等。
要写出机能很好的SQL不仅须要进修SQL,还要能看懂数据库履行筹划,懂得数据库履行过程、索引的数据构造等。
固然是全表扫描,然则扫描是次序的(不管机械硬盘照样SSD次序读写机能都是高的),并且数据量不是特别大年夜,所以这部分消费的时光应当不是特别大年夜,重要的消费应当是在排序上。
【编辑推荐】
- 用MySQL实现类似于Oracle dblink的功能
- 浅谈MySQL中优化SQL语句萌芽常用的30种办法
- MySQL存储过程语法及实例
- 经由过程Atlas实现MySQL读写分别
- MySQL索引专题一 熟悉索引
推荐阅读
结缘:我小我很爱好研究马云的研究,一是认为他把工作做到了弗成思议的高度,二是他很爱对将来思虑场且愿意把结不雅分享。可以或许接触他的思惟,是一件异常荣幸的工作。我踏入数据行业也>>>详细阅读
本文标题:MySQL SQL优化之覆盖索引
地址:http://www.17bianji.com/lsqh/37146.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示