这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【PRIMARY KEY & UNIQUE(主键、唯一索引)】
PRIMARY KEY & UNIQUE(主键、唯一索引)
1.背景介绍
概念
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
不建立索引的话,MySQL执行查询会从数据表的第一行开始查直到查询想要的数据结果。
2.知识剖析
索引的分类–单列来区分
1).普通索引–这是最基本的索引,它没有任何限制
2).唯一索引–索引列的值必须唯一,但允许有空值;如果是组合索引,则列值的组合必须唯一
3).主键索引–列值唯一,非空,一个数据表只能有一个主键
4).组合索引:将数据表中多个列建到一个索引中,MySQL组合索引遵循“最左前缀”原则,
就是说你的查询条件语句里必选包含组合索引第列的值才能使用
改组合索引,例如在某个数据表中为user,name,age三个列建立组合索引,
查询语句里必须有where user*才会调用这个索引。
索引的分类(存储结构)(InnoDB)
B-tree
mysql数据库中主键、唯一、普通、全文都是采用b-tree数据结构
在InnoDB中,