如何在数据库中使用索引
作者:网络转载 发布时间:[ 2012/11/26 10:13:04 ] 推荐标签:
如果,创建索引后,遍历的次数与创建索引之前,变化不大。
说明,创建索引时,选择的列名不合理,需要选择合适的列重建索引。这是分析索引优劣的方法。
追加了索引后,也不能保证在每次检索时都会使用列索引。
如果,SQL 检索语句编写不当,无法使用索引。
1、LIKE 运算符,进行模糊检索时,只能在前方一致的检索时,才能使用索引。
以下写法,索引不会被使用。
SELECT * FROM employee WHERE lname_pinyin LIKE '%w%';
SELECT * FROM employee WHERE lname_pinyin LIKE '%w';
2、使用 IS NOT NULL、<> 的场合,也不会使用索引。如下:
SELECT * FROM employee WHERE lname_pinyin IS NOT NULL;
SELECT * FROM employee WHERE lname_pinyin <> 'wang';
3、对列使用了运算或者函数的情况下,不会使用索引,如下:
SELECT * FROM employee WHERE YEAR(birth) = '1980'; -- 不使用索引
SELECT * FROM employee WHERE birth >= '1980-01-01' AND birth <= '1980-12-31'; --使用了索引
4、复合索引的第一列,没有包含在 WHERE 条件语句中,如下:
CREATE INDEX idx_pinyin ON employee(lname_pinyin, fname_pinyin);
SELECT * FROM employee WHERE lname_pinyin = 'wang' AND fname_pinyin = 'xiao'; --用了索引
SELECT * FROM employee WHERE lname_pinyin = 'wang'; --用了索引
SELECT * FROM employee WHERE fname_pinyin = 'xiao'; -- 没有使用索引
SELECT * FROM employee WHERE lname_pinyin = 'wang' OR fname_pinyin = 'xiao'; -- 没有使用索引
实际开发过程中,需要积极使用 EXPLAIN 命令,来确认索引的使用情况,及时作相应修改。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11