Column Indexes

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 常见的索引类型通过复制列值至高效数据结构(如B树),实现快速查找。B树助力WHERE子句中=、>、≤、BETWEEN等运算符对应值的检索。每表至少支持16个索引,总长不少于256字节,具体限制依存储引擎而定。字符串列索引可指定前N字符,减少索引文件大小;BLOB或TEXT列索引需指定前缀长度。全文索引用于全文搜索,适用于InnoDB和MyISAM引擎的CHAR、VARCHAR、TEXT列;空间索引则针对空间数据类型,MyISAM和InnoDB采用R树索引。MEMORY引擎默认使用HASH索引,也支持BTREE索引。

最常见的索引类型涉及一列,将该列的值的副本存储在数据结构中,允许快速查找具有相应列值的行。B树数据结构允许索引在WHERE子句中快速找到与=、>、≤、BETWEEN、IN等运算符对应的特定值、一组值或一系列值。
每个表的最大索引数和最大索引长度由每个存储引擎定义。请参阅第14章“InnoDB存储引擎”和第15章“替代存储引擎”。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎都有更高的限制。

image.png

Index Prefixes
使用字符串列的索引规范中的col_name(N)语法,您可以创建仅使用列的前N个字符的索引。以这种方式仅对列值的前缀进行索引可以使索引文件小得多。为BLOB或TEXT列建立索引时,必须为索引指定前缀长度。例如:

image.png

前缀的长度最多为1000字节(InnoDB表为767字节,除非您设置了InnoDB_blarge_prefix)
Note
Prefix limits are measured in bytes, whereas the prefix length in CREATE TABLE, ALTER TABLE, and CREATE INDEX statements is interpreted as number of characters for nonbinary string types (CHAR, VARCHAR, TEXT) and number of bytes for binary string types (BINARY, VARBINARY, BLOB). Take this into account when specifying a prefix length for a nonbinary string column that uses a multibyte character set.
如果搜索词超过索引前缀长度,则使用索引排除不匹配的行,并检查其余行是否可能匹配。
有关索引前缀的更多信息
FULLTEXT Indexes

FULLTEXT索引用于全文搜索。只有InnoDB和MyISAM存储引擎支持FULLTEXT索引,并且仅支持CHAR、VARCHAR和TEXT列。索引始终在整个列上进行,不支持列前缀索引。有关详细信息,请参阅第12.9节“全文搜索功能”。
优化应用于针对单个InnoDB表的某些类型的FULLTEXT查询。具有这些特征的查询特别有效:
仅返回文档ID或文档ID和搜索排名的FULLTEXT查询。
FULLTEXT查询按分数降序对匹配行进行排序,并应用LIMIT子句获取前N个匹配行。为了应用此优化,必须没有WHERE子句,只有一个降序排列的ORDER BY子句。
仅检索与搜索词匹配的行的COUNT(*)值的FULLTEXT查询,没有其他WHERE子句。将WHERE子句编码为WHERE MATCH(text)AGAINST('other_text'),不使用任何大于0的比较运算符。
对于包含全文表达式的查询,MySQL会在查询执行的优化阶段计算这些表达式。优化器不仅查看全文表达式并进行估计,它实际上还在制定执行计划的过程中对其进行评估。
这种行为的一个含义是,全文查询的EXPLAIN通常比在优化阶段没有进行表达式计算的非全文查询慢。
全文查询的EXPLAIN可能会在Extra列中显示Select表已优化,因为在优化过程中发生了匹配;在这种情况下,在以后的执行过程中不需要对表进行访问。

Spatial Indexes
您可以对空间数据类型创建索引。MyISAM和InnoDB支持空间类型的R树索引。其他存储引擎使用B树对空间类型进行索引(ARCHIVE除外,它不支持空间类型索引)。

Indexes in the MEMORY Storage Engine
默认情况下,MEMORY存储引擎使用HASH索引,但也支持BTREE索引。

相关文章
|
Linux 编译器 C语言
Linux(3)Device Tree概念1(上)
Linux(3)Device Tree概念1
470 0
|
机器学习/深度学习 存储 监控
人脸识别
人脸识别是一种计算机视觉技术,它利用算法和数学模型来识别和验证人脸。人脸识别技术因其高度准确性和用户友好性而成为许多行业的必备技术。本文将探讨人脸识别技术的工作原理、应用以及未来发展方向。
817 0
|
缓存 Linux
linux 手动释放内存
在 Linux 系统中,内存管理通常自动处理,但业务繁忙时缓存占用过多可能导致内存不足,影响性能。此时可在业务闲时手动释放内存。
634 17
|
机器学习/深度学习 人工智能 并行计算
【AI系统】Kernel 层架构
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
402 32
|
11月前
|
人工智能 IDE 测试技术
通义灵码2.0 - AI 程序员: AI 编程新时代的卓越助力
通义灵码是一款强大的AI编程助手,尤其在单元测试自动生成方面表现出色。它通过简化操作流程,快速生成覆盖广泛、质量较高的测试用例,支持直接编译与运行,显著提升开发效率。相比人工编写,通义灵码能大幅缩短时间成本,并更全面地覆盖边界和异常情况,但特定业务逻辑仍需人工补充。作为开发者的好帮手,它助力高效完成高质量单元测试,推动软件开发迈向新台阶。
27058 84
|
12月前
|
人工智能 缓存 运维
“云+AI”守护中国年!阿里云为中国邮政、西安政务云、总台春晚重保护航
“云+AI”守护中国年!阿里云为中国邮政、西安政务云、总台春晚重保护航
331 1
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
机器学习/深度学习 存储 缓存
【博士每天一篇文献-综述】Machine Unlearning Solutions and Challenges
本文综述了机器遗忘的解决方案和挑战,全面分类并分析了精确遗忘和近似遗忘方法,探讨了它们在隐私保护、安全性增强、模型适应性提升中的应用,并提出了评价指标和未来研究方向。
1109 2
|
数据可视化 大数据
Echarts自定义图形颜色的写法总结
Echarts自定义图形颜色的写法总结
725 0