Mysql--09

一、索引定义

索引是帮助 MySQL 高效获取数据的有序数据结构。数据库在原始数据之外,额外维护满足特定查找算法的数据结构,这些结构以引用方式指向数据,从而实现高效查询。


二、索引优缺点

表格

优势 劣势
提高数据检索效率,降低数据库 I/O 成本 索引列需要占用额外存储空间
通过索引列对数据排序,降低排序成本与 CPU 消耗 会降低表更新速度(INSERT/UPDATE/DELETE 操作时需同步维护索引)

三、主流索引结构

MySQL 索引在存储引擎层实现,不同引擎支持的结构不同:

表格

索引结构 核心描述
B+Tree 索引 最常见类型,大部分存储引擎都支持,适合范围查询与排序
Hash 索引 底层为哈希表,仅支持精确匹配查询,不支持范围查询
R-tree 索引 MyISAM 引擎专属空间索引,用于地理空间数据类型,使用较少
Full-text 全文索引 基于倒排索引实现,用于快速匹配文档,类似 Lucene/Solr/ES

四、存储引擎对索引的支持情况

表格

索引类型 InnoDB MyISAM Memory
B+Tree 索引 支持 支持 支持
Hash 索引 不支持 不支持 支持
R-tree 索引 不支持 支持 不支持
Full-text 索引 5.6 版本之后支持 支持 不支持
相关推荐
2301_8152795216 小时前
Golang怎么理解Go的sync.Pool底层_Golang如何理解Pool的本地缓存和GC清理机制【详解】
jvm·数据库·python
2301_7641505616 小时前
MySQL迁移过程如何避免数据不一致_利用强一致性备份方案
jvm·数据库·python
m0_7164300716 小时前
Redis如何处理预热失效引起的开局雪崩
jvm·数据库·python
m0_3776182316 小时前
c++文件锁使用方法 c++如何实现多进程文件同步
jvm·数据库·python
gmaajt16 小时前
mysql多字段搜索如何设计组合索引_mysql索引查询加速
jvm·数据库·python
2301_7775993716 小时前
MySQL如何快速排查慢查询安全隐患_分析slow_query_log进行优化
jvm·数据库·python
m0_7478545216 小时前
如何检测受保护链接(如 Twitter)的可访问性
jvm·数据库·python
baidu_3409988216 小时前
宝塔面板如何设置网站访问密码_配置Nginx认证保护目录
jvm·数据库·python
ccice0116 小时前
mysql之如何获知版本
数据库·mysql
2301_7775993716 小时前
Python闭包是什么_深入理解Python闭包原理与变量作用域
jvm·数据库·python