【问题标题】:mysql insert at the same time?mysql 同时插入?
【发布时间】:2012-10-14 14:26:33
【问题描述】:

我正在使用 nodejs 从一些 api 获取同步数据。我的数据库是mysql。

INSERT into mysql(tabels) values (values)

问题是有时 api 不会运行也不会停止,可能是因为超时错误(有时)或其他原因;

  1. 如果我们同时查询插入会发生什么?

  2. 如何同时从多个来源异步插入数百个数据?

  3. 你是怎么做到的?有没有像 mangodb 这样的数据库,或者已经为类似的东西构建了任何数据库?

【问题讨论】:

  • 我认为这里的任何人都无法为您检查您的日志,必须阅读日志才能检查什么报告问题。更一般的说明:1)计算中几乎没有任何事情同时发生,大多数时候请求是按顺序排队和处理的。 2)即使在多核多线程系统上,低级操作大部分时间也是排队的。 3) 大多数数据库引擎能够每秒处理数百万个事务(这对您来说是否足够?)
  • 您可能需要更改许多数据库引擎设置以每秒处理/排队更多事务。您需要查看数据库引擎文档
  • @GermannArlington 来自节点错误日志或 mysql 日志?我们在哪里可以看到它们?
  • 可能是两者之一,具体取决于错误。如果由于 MySQL 服务器上没有足够的线程而断开连接,那么您可能会在 node.js 日志中发现错误。另一方面,如果插入事务已启动但在此过程中被放弃,您更有可能在 MySQL 日志中找到原因。

标签: mysql node.js architecture asynchronous


【解决方案1】:

MySQL 与任何其他工具一样,在正确使用时运行良好。大量异步写入本身并没有什么问题,但在您的情况下,您需要进行基准测试并模拟您的预期负载才能确定。

通常同时插入两个或更多东西不是问题。通过将表设计为易于更新、将索引保持在最低限度、消除不必要的列以及在快速磁盘上运行,您始终可以调整数据库以更快地响应。

请记住,插入数据通常不是问题。一旦插入,它就会使用数据。你还没有真正描述你的意图。

这里没有特定的理由使用 NoSQL 工具,即使您每秒执行 10K 插入,经过适当调整和架构的 MySQL 可以处理。

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多