索引是帮助MySQL高效获取数据的数据结构。
CREATE TABLE table_name [col_name data type] [unique|fulltext|spatial][index|key] [index_name](col_name[length]) [asc|desc]
按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。 按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。 按字段特性分类可分为:主键索引、普通索引、前缀索引。 按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。
聚集索引:索引和数据存在一块。
非聚簇索引:索引存放的是主键值,通过主键值能找到数据
MySQL 索引实现
单列索引:
组合引擎:多个字段上创建的索引,复合索引时遵循最左前缀原则。
为了尽量少的调用磁盘 I/O,需要尽量减少树的层数
B-Tree 的结构定义
MySQL B+Tree 基于 B-Tree 做出了下面优化
使用 like 时可以使用 覆盖索引(只访问索引的查询) 查询索引的字段。
order by 的使用技巧 (排序使用索引字段)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。