小编Pie*_*her的帖子

元表VS表有很多字段,大规模.性能方面

这是一个具体的例子:

Wordpress将用户信息(meta)存储在名为wp_usermeta的表中,您可以在其中获取meta_key字段(例如:first_name)和meta_value(John)

但是,仅在50个左右的用户之后,该表已经包含了大约1219条记录.

所以,我的问题是:在大规模,性能方面,最好是将一个包含所有meta作为字段的表,或者像WordPress这样的表将所有元作为一行?

在两种情况下都正确设置了索引.几乎没有必要添加新的元素.请记住,像wp_usermeta这样的表必须使用text/longtext字段类型(大脚印)才能容纳可输入的任何类型的数据.

我的假设是,当您不知道用户可能需要什么时,WordPress方法才有用.除此以外:

  • 检索所有元数据需要更多I/O,因为这些字段不存储在单行中.该字段未优化.
  • 你不能在meta_value字段上真正拥有一个索引而不会遇到重大缺点(索引一个longtext?除非它是一个部分索引......但是,那么,多长时间?)
  • 很快,您的数据库就会混乱不堪,即使对于最精确的元数据也会诅咒您的研究
  • 开发人员友好的缺席.您无法真正执行加入请求以获取所需的所有内容并正确显示.

我可能会错过一点.我不是数据库工程师,我只知道SQL的基础知识.

mysql sql database-design scalability entity-attribute-value

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