数据库重新评估结构

时间:2014-02-28 09:59:32

标签: mysql database performance database-design evaluation

我有3个表,都有相同的字段:

id  profile_id  group_id    comment     parent_id   registered  updated

其中group_id是表格的关键,因为它代表我网站的3个不同部分之一。

因此group_id可以转换为类型& special_id。对于例如type =('a','b','c')其中special_id是类型的id。

请记住,我的数据库中有其他表与这些/这个'核心'表相关。

最好是实施我提出的建议,以提高网站的效率/规模,还是最好保持表格彼此独立?

1 个答案:

答案 0 :(得分:1)

简短的回答:如果您没有同时使用具有不同group_ids的表的查询,则最好将其分开。

因为DBMS(http://en.wikipedia.org/wiki/Database)应该决定在内存中加载表。这是快速和有效的。更多的数据......比方说1'000'000行是非常“很多”将它加载到内存中。 DBMS只会抓取硬盘。所以更好的方法是分开。

但是如果每个group_id只有10'000行,并且您有很多查询加入这些组,例如FROM a JOIN b ON b.profile_id = a.profile_id WHERE a.group_id = 'a' AND b.group_id = 'b',那么只有一个表通常会更好,因为DBMS可以优化访问时间。

您可以随时查看DMBS如何使用EXPLAIN SELECT ...处理查询。