MySQL—索引(Index)

牧云@^-^@ 提交于 2020-02-12 16:56:13

关于MySql索引数据结构和实现原理的讲解值得阅读一下:

https://www.cnblogs.com/songwenjie/category/1268974.html

1.什么是索引:

MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。

提取句子的主干,就可以得到索引的本质:索引就是数据结构。

2.索引的分类

在一个表中,主键索引只能有一个,而唯一索引可以有多个

1. 主键索引(PRIMARY KEY)

  特点:唯一标识,不可重复。只能有一列作为主键,且主键不可为Null。

2. 唯一索引(UNIQUE KEY)

  特点:避免重复的列出现,唯一索引可以重复,多个列都可以标识为 唯一索引。

3. 常规索引(KEY/INDEX)

  特点:默认的,index。key关键字来设置

4. 全文索引(FullText)

  特点:在特定的数据库引擎下才有,MyISAM,可以快速定位数据

 

3.MySQL索引创建与使用(基础语法)

参考博客:https://blog.csdn.net/justry_deng/article/details/81458470

索引一旦创建则不能修改,如果要修改索引,只能删除重建。可以使用DROP INDEX index_name ON table_name; 删除索引。

4.索引优势和劣势

优势:1.提高数据的检索效率,降低数据库IO成本 2.降低数据排序的成本,降低CPU的消耗

劣势:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

5.索引使用原则

1.不要对进行变动的数据加索引   比如:插入\删除\更新

2.小数据量的表不需要加索引

3.索引一般加在常用来查询的字段上!

4.索引不是越多越好

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!