小编Rém*_*sor的帖子

复合键VS主键+不唯一索引

这是我有的:

table content : cat_id product_id data1 data2 etc.
这些类别显然不是唯一的.产品ID是独一无二的.

2 queries : 1 -- SELECT * WHERE cat_id = :cat - must be as quick as possible 2 -- SELECT * WHERE product_id = :prodId In second select, I can add : AND cat_id = :cat

效率更高的是什么?

  • 1 - cat_id上的索引(不唯一)(适用于选择1)
  • 2 - product_id上的主键(唯一 - >选择2的优秀)
  • 3 - product_id上cat_id + PK上的索引(非唯一)(分别适用于1和2)
  • 4 - 使用复合[cat_id + product_id]的唯一约束(适用于1和2)
  • 5 - 与4相同,但将复合定义为PK
  • 6 - 复合(4或5)+单指数/ PK

有关信息,我将在每个类别中有大约20种产品和许多类别(比如3000) - 并且(因为它在表中是独一无二的)一个产品只属于一个类别 …

mysql database innodb database-indexes

3
推荐指数
1
解决办法
1274
查看次数

标签 统计

database ×1

database-indexes ×1

innodb ×1

mysql ×1