我们的 PHP 代码中有一个循环,它将行插入到表中。例如:
while ($info = mysql_fetch_assoc($someQuery)) {
mysql_query("INSERT INTO X (i,j) VALUES ($info['ii'],$info['jj'])");
}
几个月前这很好,因为循环只会迭代几次。然而,由于我们的网站获得更多流量,这个循环现在有时会重复 1000 次或更多次。该表有一些开销(4,305 KiB),并且该表中的 SELECT 出现在MySQL 慢日志中,可能是因为它们必须等待一长串 INSERT 才能释放锁?
我应该如何优化代码以便它可以更好地扩展?
我认为我可以尝试的一些事情:
- 插入延迟- 需要调查一下。能帮上忙吗?
- 尝试在同一个查询中插入多行。但是我应该设置什么限制?50、500、1000?