wordpress数据库不应该被规范化吗?

Kam*_*med 2 mysql database wordpress database-design database-normalization

我刚刚开始学习自定义wordpress查询并遇到了wordpress数据库.我很惊讶地发现数据库没有正常化.我的意思是,如果您没有大量数据,但是如果您拥有大量数据,那么使用这样的结构(即具有冗余数据)是可以的.它性能会降低,不是吗?我的问题是:

为什么这样一个知名产品会使用非规范化数据库?背后有什么具体原因吗?

在此输入图像描述

Bil*_*win 7

将'publish'存储为字符串而不是对查找表的代理键引用的好处是避免使用JOIN查找表.

您提供的示例,将"发布"一词存储在多行上,本身并不是非规范化.您可能会因使用代理键而使标准化混淆.这是两件独立的事情.代理键(自动递增"id"主键)与规范化无关.

对数据进行非规范化的原因是为某些查询提供更好的性能.

正如您所指出的,任何此类优化都会带来风险.

  • 由于冗余数据存储,您可能会出现数据异常.
  • 存储的大小可能会增加(尽管单个WordPress实例不太可能存储很多).
  • 不同的查询可能会有更差的表现

非规范化的最佳实践是确定您知道哪些查询需要具有最佳性能,然后编写代码以处理额外工作以确保在具有冗余存储时数据完整性.