以快 66 倍的速度插入 100k 行

主要观点:在为大多离线应用实现初始数据同步逻辑过程中,发现数据库抽象在向单个数据库表插入近 75 万行数据时需 2 分钟,为此开始解决瓶颈问题。
关键信息:

  • 起初使用展开语法导致栈溢出,经一天梳理 TypeScript 源映射才找到原因,得出不再使用展开运算符的结论。
  • 首次测试插入 50 万行数据需 57 秒,75 万行需 1 分 10 秒,速度过慢。
  • 后续创建基准测试,不同负载下测量时间,发现插入行数增多时时间增长明显。
  • 提出通过批量插入来改进数据库交互,实现更快的createFast方法,测试显示插入不同行数时createFastcreate快 2 倍到 66 倍不等。
    重要细节:
  • 系统配置为 Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz 4 核,8GB DDR3 1600 MHz,基准测试时系统处于重载状态,记录时间仍较慢。
  • create方法通过循环插入每行数据,createFast方法通过批量插入减少数据库调用次数来提高效率。
阅读 13
0 条评论