我们有很多我们认为“一劳永逸”的查询。
从某种意义上说,这些只是记录插入、更新等。不那么重要的东西,以及用户看到的前端从未使用过的数据。
这听起来像是mysql_unbuffered_query
.
这是可取的吗?
我们正在使用 innodb,所以使用类似的东西INSERT DELAYED
是不可能的。
谢谢!
我们有很多我们认为“一劳永逸”的查询。
从某种意义上说,这些只是记录插入、更新等。不那么重要的东西,以及用户看到的前端从未使用过的数据。
这听起来像是mysql_unbuffered_query
.
这是可取的吗?
我们正在使用 innodb,所以使用类似的东西INSERT DELAYED
是不可能的。
谢谢!
阅读http://www.php.net/manual/en/mysqlinfo.concepts.buffering.php后:
在您只期望有限的结果集或需要在读取所有行之前知道返回的行数的情况下,应该使用遵循这些特征的缓冲查询。当您期望更大的结果时,应使用无缓冲模式。
似乎无缓冲查询仅在select上有用,因为更新、插入和删除没有结果集。
我没有看到使用无缓冲更新、插入和删除有任何问题,除了:
除非从服务器获取完整的结果集,否则不能通过同一连接发送进一步的查询。无缓冲查询也可以称为“使用结果”。
那么,last_insert_id和affected_rows是一个结果吗?我不相信,因为没有完成mysql_fetch * 来获取这些信息。
因此,如果您体验到使用无缓冲查询的性能改进,请使用它!