我们正在使用MySQL 5.5 InnoDB引擎来管理我们的数据库,其中一个表具有相同的SELECT/INSERT操作,其中之一将是每天有1亿到1.5亿个插入操作。我已经读过关于MySQL分区的文章,并计划实现,但在实现之前,我很想考虑一下。那么,在不影响用户响应时间的情况下,应对此类挑战的最佳方法是什么呢?
发布于 2013-10-09 10:12:44
首先,确保主键是自动增量,因为它是InnoDB表的聚类索引。这意味着,如果它是自动增量,插入是仅附加操作,如果不是-它是随机写入,这是主要的性能杀手。确保PK很小,并且没有不必要的索引。如果可能,批处理插入,因为更新索引是insert操作的很大一部分。
确保其他I/O设置是有意义的,比如数据实际刷新到磁盘的频率;您可以将二进制日志文件放在SSD上,以确保尽可能快地写入该文件。
在所有这些之后,通常使用主从服务器将读与写分开,因此插入查询中的尖峰不会影响数据的读取(假设读取可能过时的数据是可以的)。
https://stackoverflow.com/questions/19268960
复制相似问题