MySQL基础篇(3)
MySQL的索引
一、唯一索引——用关键字unique约束,作用为:约束某个或多个字段不能重复(但是可以为空),加速查找速度
例:
create table t1(
id int,
cid int,
did int,
unique index cd_id_un (cid,did)
)engine=innodb default charset=utf8
上述的例子为联合唯一,即两个字段联合起来的值必须唯一,比如cid=1,did=2,新插入的记录,cid=1,did=2,则插入失败。
二、
索引为什么可以加速查找速度?对于数据库的查询来说,查询记录都是从第一条开始,逐条往后遍历查询的,当数据量很大的时候,平均的查询速度就会非常的慢了。而创建了索引,数据库在插入数据时就会根据索引对应的字段进行排序,所以根据索引进行查询操作时,其实是对一个有序的数据进行查询。对有序数据进行查询时,就很容易联想到二分查找算法。所以在数据量非常大时,对索引进行查询操作是可以很大的提高查询速度的。
但是索引也会有弊端,大概有以下几种:
1、会降低数据的写入性能。届时,每插入一条数据,都会进行两个操作——写入数据本身和更新索引(比如说排序)
2、索引会占用一定的磁盘空间,在使用索引时需要考虑字段的长度。
3、建议使用表中的唯一值为字段编制索引。