galera:索引大数据时无法写入数据库

nnt7mjpx  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(478)

我使用的galera集群有3个节点。我目前遇到以下问题。我想将超过5亿条记录写入数据库,例如表数据。具体步骤如下:
创建表newdata,使用schema作为数据,但不使用索引。
将5亿条记录写入这个表(使用多个线程进行写入,每个线程将写入一堆记录)。
完成后,为该表指定索引。
将数据重命名为olddata,将newdata重命名为data。
我目前的问题是在索引短语,其他服务不能写/读数据。在我增加之后 innodb_buffer_pool_size 其他节点可以读取数据,但仍然不能写入。
我已经进行了配置,这样写的作业可以在不同的节点上写入,而不是在其他api上,但问题仍然是一样的。我认为,如果一个节点的工作负载非常高,那么另一个节点的行为应该仍然正常。请告诉我为什么以及如何解决这个问题。
谢谢

dtcbnfnu

dtcbnfnu1#

我想你错过了一步。
(一次性)创建表 NewData 架构为 Data 但没有索引。
插入 NewData .
创建表empty(同样类似于数据,但没有任何索引)RENAME TABLE NewData TO ToIndex, Empty TO NewData;--现在可以继续摄入了。 ALTER TABLE ToIndex ADD INDEX ...RENAME TABLE Data TO Old, ToIndex TO Data;关键是要有两件事: 不停地给没有索引的人写信NewData. 交换表,以便周期性地对该表(使用新名称)进行索引,然后用于替换活动表(通常被视为Data` ).
这种情况并不完全相同,但有一些相似之处:http://mysql.rjweb.org/doc.php/staging_table

相关问题