⑩② 【MySQL索引】详解MySQL`索引`:结构、分类、性能分析、设计及使用规则。

2023-11-18 14:56:56 浏览数 (3)

个人简介: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)。

0 人点赞