gpt4 book ai didi

mysql - Galera:索引大数据时无法写入数据库

转载 作者:行者123 更新时间:2023-11-29 05:51:10 24 4
gpt4 key购买 nike

我正在使用具有 3 个节点的 Galera 集群。我目前遇到以下问题。我想将超过 5 亿条记录写入数据库,例如表数据。以下是步骤:

  • 创建表 NewData,将模式作为数据但没有索引。
  • 将 5 亿条记录写入此表。 (使用多线程写入,每个线程会写入一堆记录)。
  • 完成后,为该表分配索引。
  • 将 Data 重命名为 OldData,并将 NewData 重命名为 Data。

我目前遇到的问题是索引短语,其他服务无法写入/读取数据。在我增加innodb_buffer_pool_size后其他节点可以读取数据但仍然不能写入。

我已经配置好写入作业在与其他 api 不同的节点上写入,但问题仍然相同。我认为如果一个节点的工作负载非常高,其他节点应该仍能正常运行。请告诉我为什么以及如何解决这个问题。

谢谢

最佳答案

我想你错过了一步。

  1. (一次性)创建表 NewData,其架构为 Data 但没有索引。
  2. 插入 NewData
  3. 创建表“空”(同样类似于数据但没有任何索引)
  4. RENAME TABLE NewData TO ToIndex,Empty TO NewData; -- 现在可以继续摄取了。
  5. ALTER TABLE ToIndex ADD INDEX ...
  6. RENAME TABLE Data TO Old, ToIndex TO Data;

关键是要进行两件事:

  • 不断写入未索引的 NewData
  • 交换表以便定期为该表(以新名称)编制索引,然后用于替换事件表(始终被视为数据)。

这不是完全相同的情况,但有一些相似之处:http://mysql.rjweb.org/doc.php/staging_table

关于mysql - Galera:索引大数据时无法写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54002735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com