最近,我们将表具体转换为使用InnoDB (从MyISAM),这样我们就可以利用对数据库进行更新的能力,同时仍然允许进行SELECT查询(即不为每个INSERT锁定整个表)。
我们有一个每周运行的循环,并且使用INSERTS使用"INSERT INTO ... ON DUPLICATE KEY UPDATE ..."运行大约1亿行。
我们对当前每秒大约2000 insert/ update的更新性能相当满意。
但是,在运行此过程时,我们注意到常规查询需要很长时间。
例如,这需要大约5分钟来执行:
SELECT itemid FROM items WHERE itemid = 950768(当INSERT没有发生时,上面的查询需要几毫秒。)
有没有办法迫使SELECT查询具有更高的优先级?否则,我是否可以在MySQL配置中更改任何参数来提高性能?
理想情况下,当流量较低时,我们将执行这些更新,但每次选择查询超过几秒钟的内容似乎都无法同时更新和从数据库读取。我正在寻找任何建议。
我们使用亚马逊的RDS作为我们的MySQL服务器。
谢谢!
https://stackoverflow.com/questions/17439895
复制相似问题