MySQL索引(一)

             数据库开发中索引的使用占了很重要的位置,好的索引会使数据库的读写效率加倍,烂的索引则会拖累整个系统甚至引发灾难。

             索引分三类:

             index ----普通的索引,数据可以重复

             unique ----唯一索引,唯一索引,要求所有记录都唯一

             primary key ----主键索引,也就是在唯一索引的基础上相应的列必须为主键

             一般的创建索引的语句如下:

             

             MySQL 中会对 <,<=,=,>,>=,BETWEEN,IN 以及不以% _ 开头的like 语句使用索引。

            


             为证实like处理方法以下为一个简单的测试:

 

            


            先不添加索引,随机插入100W 条记录,并测试like 的查询速度。

 

           

         使用前后% 测试like 查询速度:

 

 

70231条 用时0.531s

 

 

961406条用时1.422s

 


下面加入索引:

 


再次测试like 的查询速度:

 

70231条 用时1.094s

961406条用时1.485s

表为MyISAM格式。 可以看到加了索引后查询的效率并未得到提升。再使用 explain 关键字查看 like 'ab%' 的运行情况:

EXPLAIN
SELECT *
FROM tb_test IGNORE INDEX(my_index)
WHERE fval LIKE '%ab';



EXPLAIN SELECT *
FROM tb_test
WHERE fval LIKE '%ab';


posted on 2012-02-08 18:47  心笑峰  阅读(7407)  评论(0编辑  收藏  举报

导航