mysql索引(四)

  mysql 索引的建立可以大大的提高,mysql 的检索速度; 

  索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它包含着对数据表里所有记录的引用指针。在sql语句中,在没有索引的情况下,数据库会便利全部数据后选择符合条件的,而有了响应的索引之后,数据库会直接在索引中查找符合条件的选项;
  索引分为聚簇索引和费局促索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快;
mysql索引分为:普通索引、唯一索引、全文索引、单列索引,多列索引、组合索引;

  虽然索引可以大大的提交 mysql 的检索速度,但是也会降低更新表的速度;

  一、普通索引

    普通索引是mysql中最基本的索引了,它没有任何的限制;

    1)、创建索引

      create index index_name on tablename(column_name(length))

      或者在创建表的时候就创建索引    create table table_name(id int,title varchar(10),primary key ('id'),index index_name(title(8)))

      再或者  alter table table_name add index index_name on (column_name(length))

    2)、删除索引

      drop index index_name on table_name

      或者 alter table table_name drop index index_name

  二、唯一索引

    唯一索引与普通索引类似,但是不同的是:唯一索引的索引列的值必须是唯一的,但是允许有空值,而且他与主键也是不同的;如果是组合索引,那么列值的组合必须是唯一的;

    1)、创建唯一索引

      create unique index index_name on table_name(column_name(length))

      或者 alter table table_name add unique index index_name on (column_name(length))

      再或者在创建表的时候直接创建索引 create table table_name(id int,title varchar(10),unique index_name(title(length)))

  三、全文索引

    mysql 从3.23.23版本开始支持全文索引和全文检索了,fulltext即全文,fulltext索引仅仅可用于myISAM 表;他们可以从 char 以及 varchar 或 text 列中最为 create table 语句的一部分被创建,或是随后使用 alter table 或 create index 被添加;传经方法和唯一索引是一样的,唯一所以是在 indx 前边用 unique 进行标记的,而全文索引是在 index 前边用 fulltext 进行标记;

  四、单列索引

  五、组合索引

    创建的方法和其他的是一样的,只不过是指定了多个column_name,例如: 

    create index index_name on table_name(name(8),age(3))

原文地址:https://www.cnblogs.com/mufc/p/10577176.html