SQL语句的优化(合理使用索引)
1.1、什么时候使用索引?
(1)、以查询的关键字为基础,表中行随机排序;
(2)、包含的列数 相对较少的表;
(3)、表中大多数的查询包含相对简单的where从句;
(4)、缓存命中率低,而且也不用操作系统权限;
1.2、选择什么样的索引列和表达式?
(1)、where从句频繁使用的关键字;
(2)、重复性少的关键字;
(3)、避免使用频繁修改的列作为索引列;
(4)、避免使用包含操作符或函数的where从句中的关键字作为索引列;
1.3、多列索引也叫做复合索引,什么情况下使用复合索引主列?
(1)、一些关键字在where语句中使用频率高;
(2)、几个查询 都选择相同的关键字集合;
1.4、避免全表扫描大表,全表扫描是不加任何条件或没有使用索引的SQL语句,下边的情况可以使用:
(1)、查询的表没有建立索引;
(2)、需要返回所有的行;
(3)、带有like并且使用"%",这种语句就是全表扫描;
(4)、带有is null 、is not null 或!= 这类语句也会导致全表的扫描;
其实使用索引的语句也未必就是最好的,举个栗子:一张小表,只有三五行数据,一次IO就可以完成全表的检索,然而如果现在还用索引的话,就需要进行两次的IO,所以,当表比较小的时候,进行全表扫描就是最优的。
本文详细介绍了SQL语句优化中的索引使用策略,包括何时创建索引、如何选择索引列、多列索引的应用场景及避免全表扫描的条件。通过合理的索引设计,可以显著提高数据库查询效率。
5923

被折叠的 条评论
为什么被折叠?



