【问题标题】:RabbitMQ for high volume MySql inserts and updates?RabbitMQ 用于大容量 MySql 插入和更新?
【发布时间】:2014-08-09 15:06:40
【问题描述】:

我们有一个 MySql 数据库,每秒有很多写入和更新,而且速度正在迅速增长。

为了处理所有这些写入和更新,我们正在考虑在应用程序和数据库之间添加一个像 Rabbit mq 这样的队列实例,这样每个查询都将被发送到队列中,用户不必等待数据库完成插入和更新记录。

我们知道使用队列会导致数据库数据更新延迟,这对我们的应用程序来说不是问题。

对于插入,我们目前使用“INSERT DELAYED”和 MyIsam 表,但我们无法通过更新来完成。所以经过一番挖掘,我想出了排队选项。

这是减少对数据库进行大量写入的推荐方法吗?还是我们应该考虑另一种解决方案?

如果您有任何除 RabbitMQ 之外的建议,我们欢迎新的想法。

还有 - 任何已知的 PHP MySql PDO 和 RabbitMQ 插件?

谢谢

【问题讨论】:

  • 这不是建设性的。可能有很多其他方法可以减少数据库负载,从重构应用程序级别到简单地向数据库机器或集群添加更多资源。顺便说一句,MyISAM 使用表级锁,那为什么不试试 InnoDB 呢?请记住,从 MySQL 5.6.6 开始,INSERT DELAYED INSERT DELAYED 已被弃用。
  • 感谢您的提示。向机器添加更多资源显然是我们考虑过的一个选项,我们会这样做仍然会让用户每次等待写入数据。我们将 Innodb 用于我们更新的表,因此没有表锁定,我们使用带有延迟选项的 myisam 来插入表。
  • RabbitMQ 无济于事,只会产生更多问题。在这种情况下,重构应用程序始终是一种方式

标签: php mysql rabbitmq


【解决方案1】:

也许这个库可以帮助你:https://github.com/videlalvaro/php-amqplib

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多