主要观点:在为大多离线应用实现初始数据同步逻辑过程中,发现数据库抽象在向单个数据库表插入近 75 万行数据时需 2 分钟,为此开始解决瓶颈问题。
关键信息:
- 起初使用展开语法导致栈溢出,经一天梳理 TypeScript 源映射才找到原因,得出不再使用展开运算符的结论。
- 首次测试插入 50 万行数据需 57 秒,75 万行需 1 分 10 秒,速度过慢。
- 后续创建基准测试,不同负载下测量时间,发现插入行数增多时时间增长明显。
- 提出通过批量插入来改进数据库交互,实现更快的
createFast
方法,测试显示插入不同行数时createFast
比create
快 2 倍到 66 倍不等。
重要细节: - 系统配置为 Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz 4 核,8GB DDR3 1600 MHz,基准测试时系统处于重载状态,记录时间仍较慢。
create
方法通过循环插入每行数据,createFast
方法通过批量插入减少数据库调用次数来提高效率。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。