所在的位置: mysql >> mysql资源 >> MySQL查询优化之索引

MySQL查询优化之索引

什么是索引

索引简单来说就类似字典,想想我们小时候在中华字典怎么查某个字。索引的作用就是快速找出在某个列中有一特定值的行。

例如:有一张user表,其中有万条记录,记录着万个人的信息。有一个Phone的字段记录每个人的电话号码,现在想要查询出电话号码为xxxx的人的信息。

如果没有索引,那么将从表中第一条记录一条条往下遍历,直到找到该条信息为止。

假如有了索引,那么会将该Phone字段,通过一定的方法进行存储,好让查询该字段上的信息时,能够快速找到对应的数据,而不必在遍历万条数据。

索引的存储类型

MySQL索引的存储类型有:BTREE、HASH。

B-Tree

B-Tree索引是目前关系型数据库中查找数据最为常用和有效的索引,大多数存储引擎都支持这种索引。

InnoDB聚簇索引

聚簇索引保证关键字的值相近的元组存储的物理位置也相同(所以字符串类型不宜建立聚簇索引,特别是随机字符串,会使得系统进行大量的移动操作),且一个表只能有一个聚簇索引。

因为由存储引擎实现索引,所以,并不是所有的引擎都支持聚簇索引。

优点:

1、所有的MySql列类型(字段类型)都可以被索引,也就是可以给任意字段设置索引

2、大大加快数据的查询速度

缺点

1、创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加

2、索引也需要占空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值

3、当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降低了数据的维护速度。




转载请注明:http://www.aierlanlan.com/rzgz/5259.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了