SQL|大量数据导入 MySQL 的性能优化方法

业务场景:需要将大量记录写入到表 my_table 中。

优化方法:先将需要写入到表 my_table 中的数据,按写入 MySQL 后的主键排序,然后再逐条写入到 MySQL 中。通过对主键排序,可以保证在写入数据时,新增的数据一定是写在最后一个数据页上的,已写完的数据页不会需要页分裂。

Mysql 的页分裂过程:

当 MySQL 需要插入一条记录时,首先会定位到这条记录应该被插入到哪个叶子节点对应的数据页中;如该数据页空间足够,则直接插入数据,如果该数据页空间不足,则不能直接插入数据,而是需要进行页分裂。

在页分裂时,大概需要执行如下流程:

  1. 创建一个新的数据页
  2. 然后将旧数据页中的部分拿数据转移到新数据页中
  3. 将新数据也添加到叶子节点的双向链表中
  4. 逐层向上更新内节点记录的索引信息

猜你喜欢

转载自blog.csdn.net/Changxing_J/article/details/133050346