首页 > 代码库 > Mysql的索引

Mysql的索引

  首先,表一下索引的好处。在大数据集上,不加索引直接查询结果的时间消耗要远远大于在索引上查询。索引就好比是一本书的目录。

  索引是一种特殊的文件(InnoDB数据表上索引是表空间的一个组成部分)。他们包含着对数据表里面所有记录的引用指针。举个例子,比如查询主键id = 2000000的记录。

SELECT * FROM article WHERE id=2000000

  如果没加索引那么就会很爆炸,一般数据库默认都会为主键生成索引。

聚簇索引、非聚簇索引

  索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的:能够提高多行的检索速度;而非聚簇索引对于单行的索引检索很快。

  举例来说,你翻到新华字典的汉字“爬”那一页就是P开头的部分,这就是物理存储顺序(聚簇索引);而不用你到目录,找到汉字“爬”所在的页码,然后根据页码找到这个字(非聚簇索引)。

  聚簇索引的唯一性:因为表结构的存储顺序只能有一个,所以物理存储只能有一个顺序。显然,这让聚簇索引变得贼拉珍贵,很关键哟。。。。

  初学者最大的误区:把主键自动设为聚簇索引。 主键可以是聚簇索引,但是如果主键无意义的自增字段,那么我们就可以简历自己想要的聚簇索引。

  

Mysql的索引