草庐IT

MySQL Innodb : Large Composite PK no other indexes

coder 2023-10-25 原文

我正在创建一个包含四列的 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/

有关MySQL Innodb : Large Composite PK no other indexes的更多相关文章

随机推荐