本文为您介绍使用 TXRocks 的最佳实践 - 大量数据导入如何提升导入速度。
Rows inserted during bulk load must not overlap existing rows
错误。说明:需要根据规格和数据量,对参数 rocksdb_merge_buf_size 和 rocksdb_merge_combine_read_size 适当调大。
SET session rocksdb_bulk_load_allow_unsorted=1;
SET session rocksdb_bulk_load=1;
...
导入数据
...
SET session rocksdb_bulk_load=0;
SET session rocksdb_bulk_load_allow_unsorted=0;
说明:如果导入的数据本身有序,则不需要设置 rocksdb_bulk_load_allow_unsorted。
4. 重建二级索引,可以在全部数据导入完成后,逐个重建二级索引。
!
- 二级索引创建过程中涉及多路归并,rocksdb_merge_buf_size 为每路数据量大小,rocksdb_merge_combine_read_size 为合并过程中多路合并所使用的总内存大小。
- 例如,建议 rocksdb_merge_buf_size 设置为64MB以上,rocksdb_merge_combine_read_size 设置为1GB以上,为避免 OOM,导入数据全部完成后务必改回原参数值。
- 此外,每个二级索引创建过程都会消耗较多内存,建议不要同时创建较多的二级索引。
导入数据过程中,关闭 unique_check,可以提升导入性能。
SET unique_checks=OFF;
...
导入数据
...
SET unique_checks=ON;
注意:处理完成后,务必将 unique_checks 改回 ON,否则后续正常事务写入的 insert 操作不会进行唯一性检查。
本页内容是否解决了您的问题?