使用唯一键在 MyISAM 上使用分区加速 MySQL 插入

d0r*_*0rc 9 mysql optimization table-partitioning

我有一个很大的 MyISAM 表(~30M 行)。在某些时候,我已将其切换为固定行格式,因此现在表在磁盘上占用约 40Gb,索引占用 2Gb。表有一个唯一索引,每秒有 100 个“插入重复键更新”查询。随着表的增长,这些插入变得越来越慢。

我不确定,但是分区会帮助我加快插入速度吗?

Ale*_*lex 0

这些插入查询是并发的还是源自同一进程?如果它们是并发的,最好对此表使用 InnoDB 存储,因为 MyISAM 锁定整个表,而 InnoDB 使用行锁。如果无法切换到另一个存储,您可以尝试 INSERT DELAYED 语句和许多其他插入优化。除非您将不同的分区放置在不同的物理磁盘上,否则分区将无济于事。