MySQL:更好的几个表包含数百万行或数千个包含数百行的表

时间:2013-01-12 23:10:50

标签: mysql database-design scalability

我正在构建一个Web应用程序,我希望从一开始就进行扩展。我对数据库可扩展性的了解不多,而且我面临这样的疑问:

我应该使用一些包含数百万行的表格,还是应该将内容分成数百个表,如果不是数千个表,预计有数百行。

我可以同时进行两次溃败,但我不知道从长远来看哪一种会更好地扩展。

我发现了这方面的一些信息,但它没有多大帮助:MySQL Whats better for speed one table with millions of rows or managing multiple tables?

基本上我需要知道,垂直或水平扩展数据库会更好吗?

2 个答案:

答案 0 :(得分:4)

如果查询调整得很好,数据库会给出足够快的响应,通过非常小的查询调整,速度可能会发生神奇的变化。

但是,您不希望在数据库中进行演讲。对于你的问题:这里最重要的是实现规范化形式。

您的表格应该是可管理的,redundancy - 免费。为避免冗余,您需要尽可能normalize您的表。规范化形式最高可达6NF,但如果您没有该地区的经验,我认为Boyce–Codd normal form应该足够了。

答案 1 :(得分:2)

伊斯梅特说得好。然而,在处理网络时,有时人们会有某些“聚合”。或者他们想要跟踪的其他总数,并且可能有点耗费时间。

如果你可能有这样的类别,它可能是一个很好的考虑因素"粘贴"这些条目需要一些额外的列。然后,当记录被添加到任何表时,可以运行插入/更新触发器来更新这些值,而不必显式重新运行从数百万条记录中提取的完整查询并为您提供性能损失。