mysql索引的总结


一、索引的作用
用于快速找出某个列中有一定特定值得行。

二、索引的类型
1.普通索引:最基本的索引,没有任何限制。
1)直接创建索引
create index index_name on table(column(length))

2).修改表结构的方式创建索引
alter table table_name add index index_name on (clounm)

3).创建表的同时创建索引
create table 'table'{
`id` int(11) not auto_increment,
......
PRIMARY KEY (`id`)
index index_name (title(length))
}

4)删除索引
drop index index_name ON table

2.唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。
1)创建唯一索引
create unique index indeName no table(clounm(length))

2)修改表结构
alter table table_name add unique indeName on (column(length))

3)创建表的时候直接指定
create table table_name(
`id` int(11) not null auto_increment,
unique indeName (title(length))
)

3.主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) NOT NULL ,
PRIMARY KEY (`id`));

4.组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合
索引时遵循最左前缀集合。

5.全文索引:主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更
像是一个搜索引擎,而不是简单的where语句的参数匹配。
1)创建表的时候添加全文索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER NOT NULL ,
`content` text CHARACTER NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
FULLTEXT (content));

2)修改表结构时添加全文索引
alter table article add fulltext index_content(content)

3)直接创建全文索引
create fulltext index index_content on article(content)

三、索引的缺点
1.提高查询速度的同时,降低了更新表的速度;
2.建立索引会占用磁盘空间的索引文件。

四、使用索引应该注意的点:
1.列的唯一性太小的(如性别、类型等)不适合建立索引;
2.太长的列,可以选择只建立部分索引;
3.更新比较频繁的数据不宜建立索引;
4.不建议使用like语句,但“xxx%”禁止使用;
5.不能再列上进行运算,这样会导致索引失效;
6.不适用not in 和 <> 操作 

原文地址:https://www.cnblogs.com/kaka6k66k/p/12807711.html