🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
##避免全表扫描 *见分享2015.08.25_数据库那些事 一* ####**使用EXPLAIN命令,查看sql中是否有全表扫描** ``` sql EXPLAIN SELECT * FROM `user` LEFT JOIN company_info com ON `user`.company_info_id = com.id where `user`.id = 3 ``` 结果: ![](https://box.kancloud.cn/2016-05-17_573a8928a9258.jpg) 主要字段解释: >type >>const 最多会有一条记录匹配 ref 非唯一性索引扫描,返回匹配某个单独值的所有行 range 扫描部分索引,索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于BETWEEN、<、>、IN等的查询 index 扫描全部索引树 ALL 全表扫描 >Extra >>Using index 查询覆盖了索引的,好事情 Using where 使用了WHERE从句来限制哪些行返回给用户 Using temporary 说明使用了临时表,一般看到它说明查询需要优化了 Using filesort 出现在排序时,看到它代表排序是在内存或硬盘中完成的,一般看到它就必须要优化了