哪个(mysql)性能更好?

时间:2010-08-07 17:03:36

标签: mysql database database-design

哪一个(mysql)性能更好?

“1500(300x5)每桌365行的”OR“(300x5)1个表中的1500x365行”?

(我将用php获取数据。)

365 - >一年中的天数

  • if second:我将使用“date”和“x_id”从(300x5)1500x365行中获取1行。
  • 如果是第一个:我将使用“date”和“table_name”从365行获得1行。**

3 个答案:

答案 0 :(得分:3)

第二个。 http://datacharmer.blogspot.com/2009/03/normalization-and-smoking.html

[更新问题后编辑]

在第二种情况下,您可以在列(x_id,date)上创建索引,这将提高WHERE x_id = ? AND date = ?次搜索的效果。对于索引良好的表,一些~550000行并不多。

答案 1 :(得分:1)

假设数据中的所有关系都是一对一的,那么使用单个表的第二个选项是更好的(规范化)方法。

但是多表选项或正在存储的数据没有详细信息。糟糕的设计,就像每个用户的表一样,是对性能的责任 - 而不是许多表的事实。

更新

事情仍然很模糊,但您想要存储的数据是每天和多年来的数据。是什么让您考虑使用相同格式的单独表格?相同的表格会提示我建议单个主表格,其中包含一些支持表格,例如状态和/或类型代码,以区分单个表格中的记录,这在单独的表格方法中很明显。

答案 2 :(得分:-1)

这取决于你正在使用的引擎,以及你是否会有更多的阅读或更多的写作。

看看每个引擎锁定表有关读写的方式。

但1500桌子很多。我希望像10桌子一样。

1表也不是一个糟糕的选择,但如果有一天你想拥有多个服务器,那么用10个表来传播它们会更容易。

另外,如果你改变表的结构将会很长,只有1个表。 (我知道它不应该附加但事实确实如此)