1

我有一个客户设计的系统,该表最初不应该在几年内获得超过 10 个演出(可能是 1000 万行)。好吧,他们导入的信息比他们想象的要多得多,并且在一个月内,该表现在已达到 208 个演出(9 亿行)。

我对 MySQL 的经验很少,而对 Microsoft SQL 的经验却更多。MySQL 中是否有任何东西可以让客户端让数据库跨越多个文件,这样运行的查询就不必使用整个表和索引?桌子上有一个字段可以轻松拆分,但我不知道该怎么做。

我要解决的主要问题是从此表中的检索查询。插入根本不是什么大问题,因为它都是由后端服务完成的。我有一个测试系统,其中的表大约有 2 个演出(600 万行),我的查询不到一秒钟。在生产系统上运行相同的查询时,需要 20 秒。我觉得查询做得很好,只是表的大小导致了问题。该表上有一个专门为此查询创建的索引,并且使用 EXPLAIN,它正在使用它。

如果您有任何其他建议/问题,请随时提出。

4

2 回答 2

1

除了已经提到的分区之外,您可能还需要运行tune-primer脚本以确保您的 mysql 配置是最佳的。

于 2012-12-12T13:59:59.170 回答
1

使用分区,尤其是创建表中设置 data_directory 和 index_directory 的部分。

使用这些选项,您可以根据需要将分区放在单独的驱动器上。不过,通常情况下,使用可以在每个查询上使用的键(通常是时间)进行分区就足够了。

于 2012-12-12T13:47:41.723 回答