我有8组数据,每组约30,000行,数据结构与不同语言相同。
网站的前端将获得相对较高的流量。
所以我的问题是关于MySQL性能,如果我应该有一个表有一列来区分数据属于哪个集合(即coloumn“language”)或者为每个语言集创建单独的表?
(如果可能的话,为什么会有用的解释)
提前致谢 沙迪
答案 0 :(得分:5)
我会选择单桌设计。无论表格多么“宽”,使用适当的索引的搜索时间应该完全相同。
除了性能问题,这将简化设计和与其他表(外键等)的关系。
答案 1 :(得分:2)
“每个语言一个表”设计的另一个缺点是,每次添加模式时都必须更改模式。
语言列意味着您只需添加数据,这不是侵入性的。后者是要走的路。
答案 2 :(得分:2)
我也选择单桌设计。由于language_key的基数非常低,我将表格分配在language_key上,而不是定义索引。 (如果您的数据库支持它。)
答案 3 :(得分:0)
我同意其他回复 - 我会使用单个表格。在性能优化方面,许多因素可能会对性能产生更大的影响:
......等我是High Performance MySQL
的粉丝