sql - 组合索引比单个索引大多少?

标签 sql mysql indexing

特别是对于 MySQL,但我猜大多数 SQL 品牌的结构都是相似的。组合索引比单个索引大得多吗?例如,保存 INDEX(col1, col2) 所需的空间量是否与保存 INDEX(col1) + INXEX(col2) 所需的空间量相同?我现在在开发中并没有遇到这个问题,只是好奇。

最佳答案

对于 InnoDB,组合索引的大小大致为 col1 的大小加上 col2 的大小加上表主键的大小(或 4 个字节)如果使用 MyISAM)。

使用 InnoDB 或 MyISAM,组合索引应小于两个单独的索引,因为使用两个单独的索引时,主键(或 4 字节行指针)将被包含两次(每个索引一次)。

关于sql - 组合索引比单个索引大多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864854/

相关文章:

sql - 存储过程的字符串参数的最大长度是多少?

mysql - 我在 date_add 之间使用基于用户年龄的高级搜索,但取决于月份和年份不起作用

oracle - 使用 Oracle 进行第一个字符计数导航 : count queries dont't use functional indices

postgresql - 为什么我的 postgis 不在几何字段上使用索引?

c# - 插入后如何取回标识值

java - sqlite 查询 Android 时出错

c# - 将 WPF 应用程序连接到 ipage 服务器上的 MySQL 数据库

php - 保护 PHP 源文件免受 file_get_contents() 的影响?

MySQL 结果到文件

mysql - 如何使用 group by、where 和 order by 子句在大表(>38.700.000 行)上定义索引