mysql使用索引的注意事项
使用索引的注意事项
使用索引时,有以下一些技巧和注意事项:
1.索引不会包含有null值的列
只要列中包含有null值都将不会被包含在索引中,复合索引中只要有一列含有null值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为null。
2.使用短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个char(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和i/o操作。
3.索引列排序
mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。
4.like语句操作
一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。
5.不要在列上进行运算
select * from users where year(adddate)<2007;
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成:
select * from users where adddate<‘2007-01-01';
6.不使用not in和<>操作
下句会使用索引:
select * from mytable where username like'admin%'
下句就不会使用:
select * from mytable wheret name like'%admin'
上一篇: 七夕要吃什么食物呢?
推荐阅读
-
MySQL 创建索引(Create Index)的方法和语法结构及例子
-
使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '' for column 'createtime'的快速解决方法
-
详解Android Service 使用时的注意事项
-
HTML5中微数据概述及在搜索引擎中的使用举例
-
使用PHP备份MYSQL数据的多种方法
-
MySQL一个索引最多有多少个列?真实的测试例子
-
使用mysql中遇到的几个问题
-
Mysql 行级锁的使用及死锁的预防方案
-
MySQL(win7x64 5.7.16版本)下载、安装、配置与使用的详细图文教程
-
基于B-树和B+树的使用:数据搜索和数据库索引的详细介绍