PHP/MySQL的延迟插入与延迟写入


INSERT DELAYED vs. Write-behind in PHP/MySQL

避免在PHP/MySQL应用程序中执行许多INSERT查询以进行日志记录所产生的开销的最佳方法是什么?到目前为止,我已经将解决方案缩小到:

    使用INSERT DELAYED语句。我怀疑这实际上会更慢,考虑到有很多写操作和很少的读操作需要排队并合并。
  1. 使用支持write-behind的缓存模块。然而,PHP似乎没有这样的模块。这里也讨论了这个问题,虽然答案是3年前的事了,但从那时起新技术就出现了:如何在PHP中实现后台/异步后台写缓存?

不丢失日志条目很重要

对日志表使用archive引擎。
它针对保存日志的工作负载进行了优化。

http://dev.mysql.com/doc/refman/5.0/en/archive-storage-engine.html

注意,这个引擎不支持索引,索引会加快插入速度,但会减慢选择速度。