个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~
⑩② 【MySQL索引】
1. 索引
索引
:
什么是索引(index) ?
- 索引(index)是帮助MySQL高效获取数据的数据结构(有序):在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据就是索引。
索引的优缺点?
- 优势:
-
- ⚪提高数据检索效率,降低数据库IO成本;
- ⚪通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗;
- 劣势:
-
- ⚪索引列需要占用空间,比无索引结构占用的空间更大。
- ⚪索引虽大大提高了查询效率,但与此同时却降低了更新表的速度,如对表进行INSERT UPDATE DELETE 时,效率降低。
2. 索引的结构
索引结构
:
- MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的结构。
- ①
B Tree索引
:最常见的索引类型,大部分引擎都支持B 树索引。 - ②
Hash索引
:底层数据结构是用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范围查询。 - ③
R-tree(空间索引)
:空间索引是MyISAM引擎的一个特殊索引类型,只要用于地理空间数据类型,较少使用。 - ④
Full-text(全文索引)
:是一种通过建立倒排索引,快速匹配文档的方式。类似于ES(Elasticsearch)。