MySQL插入语句队列

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (193)

我们正在构建一个ajax应用程序,其中提交用户输入以处理到php脚本。我们目前正在将每个请求写入日志文件以进行跟踪。我想将此跟踪移动到数据库表中,但我不想在请求后运行insert语句。我想要做的是设置需要在MySQL数据库上处理的事务(插入和更新)的“队列”。然后,我将设置一个cron作业或进程来检查和处理队列中的事务。有没有我们可以构建的东西,或者我们必须写简单的文本日志文件并处理它们?

提问于
用户回答回答于

你想要Gearman - 它会将请求排队并在数据库为它们做好准备时插入它们,这样你就不会使数据库服务器过载。

Gearman提供了一个通用的应用程序框架,可以将工作分配给更适合工作的其他机器或进程。它允许您并行工作,负载均衡处理以及在语言之间调用函数。它可用于各种应用程序,从高可用性网站到数据库复制事件的传输。换句话说,它是分布式处理如何通信的神经系统。关于Gearman的一些优点:

关于在这里使用数据库进行日志记录的最新(和质量)帖子,(摘要)说:

  • 将MyISAM与并发插入一起使用
  • 每天旋转表并使用UNION进行查询
  • 使用带有MySQL的延迟插入或像Gearman这样的作业处理代理(尽管MySQL在静默删除它们之前会对它们排队的数量有限制!)

HighScalability 在Gearman上发表文章

如果你真的想避免这种情况,可以将原始SQL语句写入文件并使用此cronjob处理它们:

mysql loggingDB logTable < fullLog.sql && > fullLog.sql
用户回答回答于

扫码关注云+社区

领取腾讯云代金券