MySQL “即发即弃” 插入/更新/删除 - 建议mysql_unbuffered_query使用


MySQL "Fire-And-Forget" INSERT / UPDATE / DELETE - mysql_unbuffered_query usage advisable?

我们有很多查询,我们认为"即发即弃"。

从某种意义上说,这些只是日志记录插入,更新等。不那么重要的东西,以及用户看到的前端从未使用过的数据。

这听起来像是mysql_unbuffered_query的理想案例。

这是可取的吗?

我们正在使用 innodb,因此无法使用类似 INSERT DELAYED 的东西。

谢谢!

阅读 http://www.php.net/manual/en/mysqlinfo.concepts.buffering.php 后:

遵循这些特征,缓冲查询应在 您只期望有限的结果集或需要知道 读取所有行之前返回的行数。无缓冲模式 应在预期较大结果时使用。

似乎无缓冲查询仅在选择时有用,因为更新、插入和删除没有结果集。

我认为使用无缓冲更新、插入和删除没有任何问题,除了这个:

除非从服务器获取完整的结果集,否则不会再获取 可以通过同一连接发送查询。无缓冲查询可以 也称为"使用结果"。

那么,last_insert_idaffected_rows是结果吗?我不相信它,因为没有做任何mysql_fetch*来获取这些信息。

因此,如果您在使用无缓冲查询时遇到性能改进,请使用它!