MySQL性能:单表或多表

时间:2009-07-23 08:59:10

标签: mysql optimization performance mysql5

我有8组数据,每组约30,000行,数据结构与不同语言相同。

网站的前端将获得相对较高的流量。

所以我的问题是关于MySQL性能,如果我应该有一个表有一列来区分数据属于哪个集合(即coloumn“language”)或者为每个语言集创建单独的表?

(如果可能的话,为什么会有用的解释)

提前致谢 沙迪

4 个答案:

答案 0 :(得分:5)

我会选择单桌设计。无论表格多么“宽”,使用适当的索引的搜索时间应该完全相同。

除了性能问题,这将简化设计和与其他表(外键等)的关系。

答案 1 :(得分:2)

“每个语言一个表”设计的另一个缺点是,每次添加模式时都必须更改模式。

语言列意味着您只需添加数据,这不是侵入性的。后者是要走的路。

答案 2 :(得分:2)

我也选择单桌设计。由于language_key的基数非常低,我将表格分配在language_key上,而不是定义索引。 (如果您的数据库支持它。)

答案 3 :(得分:0)

我同意其他回复 - 我会使用单个表格。在性能优化方面,许多因素可能会对性能产生更大的影响:

  • 适当的索引
  • 编写/测试查询效率
  • 选择合适的存储引擎
  • 硬件
  • 文件系统的类型和配置
  • 优化mysql配置设置

......等我是High Performance MySQL

的粉丝