码迷,mamicode.com
首页 > 数据库 > 详细

Mysql中的索引

时间:2015-10-13 19:32:38      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

众所周知,索引能够加快查询的速度,类似看书的时候先查目录之后再翻到具体那一页。

一、聚集索引和非聚集索引

    1。聚集索引    

            聚集索引一张表只能存在一个。

            聚集索引是物理上连续的(如果数据结构是btree的话,则数据直接存在叶子节点上),所以查询一个范围的数据会相当快。

     2. 非聚集索引

            非聚集索引一张表可以存在抖个。

            非聚集索引在逻辑上是连续的(如果数据结构是btree的话,则叶子节点上存的的数据的位置信息),所以

        mysql中的innodb引擎支持聚集索引,在mysql中主键索引就是聚集索引。


Mysql中索引分为:普通索引,主键索引,唯一索引,联合索引。mysql中创建索引的时候默认使用btree数据结构。                                              innodb 不支持hash的数据结构

    1.主键索引

        在mysql中主键索引默认是聚集索引。主键索引不可重复。

        primary (key)

        alter table test add primary key (id)

    2.普通索引 

    alter table test add index index_test (name) 

    如果是字符类型,则支持指定索引字段长度

     alter table test add index index_test (name(10)) 

    3.唯一索引

    唯一索引的字段值不能重复,可以为空。

    alter table test add index index_test ()

    4.联合索引

    联合索引就是多个字段组成的普通索引或者唯一索引。

    alter table test add index index_test (id,name) using btree

相关sql语句

查询表的索引

show index from test

Mysql中的索引

标签:

原文地址:http://my.oschina.net/u/2250599/blog/516668

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!