为列分配多个索引的好处

时间:2012-05-12 05:52:20

标签: mysql sql database-schema

我正在检查wordpress架构,我观察到了这一点:

Hello there i'm so happy to meet you

为什么term_taxonomy_id被指定为主键和索引?这有什么好处吗?

2 个答案:

答案 0 :(得分:0)

主要索引是object_idterm_taxonomy_id的组合(也是次要索引)。

数据库模式设计者定义主要(和次要)索引,期望查询(或更新)该DB的常见SQL请求。

出于性能原因,定义好的索引几乎是最重要的。

因此,预计很多查询会像SELECT 一样 WHERE object_id= 某些常量 AND term_taxonomy_id= 其他一些

答案 1 :(得分:0)

如果PRIMARY索引是主键,则会强制表中只有一个object_id和term_taxonomy_id的组合。由于object_id首先出现,引用object_id的查询将使用索引的结构来非常快速地查询值。如果查询不引用任何其他字段,他们甚至不必查看表数据,因为数据全部在索引中。

但是,如果term_taxonomy_id用于查询,则必须扫描整个索引以查找行。在term_taxonomy_id上建立索引会使这些查询运行得非常快。