1

我们正在使用 MySQL 5.5 InnoDB引擎来管理我们的数据库,其中一张表具有同样的 SELECT/INSERT 操作,每天将有100-1.5 亿次插入操作。我已经阅读了有关 MySQL 分区的信息,并计划实施,但在实施之前,我很想考虑一下。那么在不影响用户响应时间的情况下应对这种挑战的最佳方法是什么?

4

1 回答 1

1

首先,确保主键是自动递增的,因为它是 InnoDB 表的聚集索引。这意味着如果它是自动递增的,则插入是仅附加操作,如果不是 - 它是随机写入,这是主要的性能杀手。确保 PK 很小并且没有不必要的索引。如果可能,批量插入,因为更新索引是插入操作的很大一部分。

确保其他 I/O 设置有意义,例如数据实际刷新到磁盘的频率;您可以将二进制日志文件放在 SSD 上,以确保尽可能快地写入。

毕竟这一切;使用主从服务器将读取与写入分开是很常见的,因此插入查询中的峰值不会影响数据的读取(假设可以读取潜在的陈旧数据)

于 2013-10-09T10:12:44.907 回答