如何提高MySQL插入和更新性能?

如何提高MySQL插入和更新性能?,mysql,performance,innodb,Mysql,Performance,Innodb,数据库中INSERT和UPDATE语句的性能似乎在下降,并导致web应用程序的性能低下 表是InnoDB,应用程序使用事务。我能做些简单的调整来加快速度吗 我想我们可能会看到一些锁定问题,我如何才能找到呢?如果不使用索引,它们可以帮助提高更新查询的性能。 您可以加快InnoDB插入的速度 和InnoDB …还有一个优化 我会尝试将您的表设置为延迟索引更新 ALTER TABLE {name} delay_key_write='1' 除非并发用户的数量随着时间的推移不断增加,否则我不会考虑锁定/

数据库中INSERT和UPDATE语句的性能似乎在下降,并导致web应用程序的性能低下

表是InnoDB,应用程序使用事务。我能做些简单的调整来加快速度吗


我想我们可能会看到一些锁定问题,我如何才能找到呢?

如果不使用索引,它们可以帮助提高更新查询的性能。

  • 您可以加快InnoDB插入的速度
  • 和InnoDB
  • …还有一个优化

我会尝试将您的表设置为延迟索引更新

ALTER TABLE {name} delay_key_write='1'

除非并发用户的数量随着时间的推移不断增加,否则我不会考虑锁定/阻塞

如果性能随着时间的推移逐渐下降,我将使用EXPLAIN语句查看查询计划

为了便于比较,从开发或初始生产环境中获得这些结果会很有帮助

可能需要删除或添加索引,
或其他岗位规定的其他维护措施

当带有索引的表上的行数增加时,插入和更新会逐渐变慢。Innodb表在插入方面甚至比MyISAM表慢,并且延迟键写入选项不可用

最有效的加速方法是先将数据保存到平面文件中,然后加载数据,这大约快20倍

第二个选项是创建一个临时内存表,将数据加载到其中,然后批量插入SELECT。也就是说,一旦临时表中有大约100行,就将它们加载到永久表中


此外,通过将索引文件从存储数据文件的硬盘驱动器移动到单独的物理硬盘驱动器中,您可以在速度上获得一点改进。同时尝试将任何bin日志移动到其他设备中。这同样适用于临时文件位置。

这些表上有索引吗?delay\u key\u write仅适用于MyISAM表,OP称它们正在使用InnoDB。