我正在创建一个包含四列的 Innodb 表。
表格
column_a (tiny_int)
column_b (medium_int)
column_c (timestamp)
column_d (medium_int)
Primary Key -> column_a, column_b, column_c
从逻辑的角度来看,列 A、B、C 必须一起组成一个 PK。但是,为了提高性能并能够直接从索引中读取(使用索引),我正在考虑一个由所有 4 个组成的 PK列(A、B、C、D)。
问题
将附加列附加到 Innodb 表的主键上会有什么性能?
注意事项
谢谢!
最佳答案
在InnoDB中,PRIMARY KEY索引结构包含所有非键字段,会自动使用它们覆盖索引查询和行淘汰。除了 PRIMARY KEY 索引结构外,没有单独的“数据”结构。没有必要向 PRIMARY KEY 定义本身添加额外的字段。请注意,当它在 InnoDB 表上使用 PRIMARY KEY 时,它不会显示 Using index,因为它是不同的代码路径,不会触发添加该消息.
关于MySQL Innodb : Large Composite PK no other indexes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14082293/