基本上我需要处理大数据集,所以我开始思考是否可以使用mysql_unbuffered_query来避免将所有结果加载到RAM中。
但是我读到了这样一条信息,即在获取行时,如果在同一张表上运行任何其他查询,则无法进行。我想知道如果表是innodb,这是否仍然正确?
Innodb在执行mysql_unbuffered_query时是否使用行级锁定?
伪代码如下:
$q = mysql_unbuffered_query("SELECT * FROM largeTable");
while($r = fetch($q)) {
if (some condition)
mysql_query("UPDATE largeTable SET field = somevalue WHERE id = someid");
}