我正在检查 wordpress 架构,我观察到了这一点:
为什么term_taxonomy_id
指定为主键和索引?它有什么好处吗?
主索引是object_id
和term_taxonomy_id
(也是二级索引)的组合。
数据库模式设计者定义主要(和次要)索引,以期望查询(或更新)该数据库的常见 SQL 请求。
出于性能原因,定义好的索引实际上是最重要的。
因此,可能预期许多查询将类似于SELECT
some WHERE object_id=
-constant AND term_taxonomy_id=
some-other-constant。
如果 PRIMARY 索引是主键,这将强制表中只能有 object_id 和 term_taxonomy_id 的一种组合。由于 object_id 首先出现,引用 object_id 的查询将使用索引结构非常快速地查询值。如果查询不引用任何其他字段,他们甚至不必查看表数据,因为数据都在索引中。
但是,如果 term_taxonomy_id 用于查询,则必须扫描整个索引才能找到行。在 term_taxonomy_id 上有一个索引将使这些查询运行得非常快。