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