MySQL 数据定义语言:索引

我们所以机制就是提升数据检索速度的,其实它的原理非常的简单,那就是对数据排序,一旦数据排序之后查找的速度就会翻倍。举一个现实生活中的例子,我们想查找机会这个英文单词,但是我只记得开头是op后面怎么拼写已经不记得了,如果你拿到一本英文词典会怎么办?快速定位到o开头单词的区间,小范围查找opportunity这个单词,如果英文词典里的单词都没有排序,全是乱序的,我们可能会疯掉了,还有一个单词就要从词典的第一页翻到最后一页,因为你不知道哪一页会有opportunity这个单词出现,把话题在收回到数据库这边,数据表中的记录都是默认按照主键来排序的,所以按照主键查找记录的速度就很快了。虽然说主键有序了,但不代表其他的字段也是有序的,比如说姓名字段他就是乱序的,如果说按照姓名去查找员工记录,这种条件查询很频繁,那就应该给姓名字段加上索引,以便提升常有的速度。这背后的原理跟查找单词是很像的,姓王的和姓王的人排在一起,姓李的和姓李的记录排在一起,我们查找王刚这个人那就只需要在姓王的群体里面查找就好了,所以这个查找就是一个小范围的查找,而不是全票查找。

创建索引 : INDEX idx_type (type)

删除索引 : DROP INDEX idx_type ON t_message

创建索引 : CREATE INDEX  idx_type ON t_message(type) 

显示索引 : SHOW INDEX FORM t_message

添加索引 : ALTER TABLE t_message ADD INDEX idx_type(type)

索引的使用原则:

1,数据量很大,且经常被查询的数据表可以设置索引。

2,索引只添加在经常被用作检索条件的字段上面

3,不要再大字段类型上创建索引(例如:长度超过50个字符的字符串)