PolarDB auto_inc 场景性能优化之路
💡
原文中文,约4000字,阅读约需10分钟。
📝
内容提要
PolarDB优化了并发插入或导入数据的场景,允许多个page同时并发插入,Blink-tree通过允许大量并发线程实现高性能auto_inc插入,比InnoDB Btree 性能提升2倍,比开启Innodb_thread_concurrency 也有13% 左右提升。
🎯
关键要点
- PolarDB优化了并发插入或导入数据的场景,允许多个page同时并发插入。
- Blink-tree通过允许大量并发线程实现高性能auto_inc插入。
- 与InnoDB Btree相比,Blink-tree性能提升2倍。
- 在并发插入场景中,自增id是递增的,插入到btree最右边的多个page。
- 允许Level 0存在多个page同时插入,提供性能优化空间。
- 尽早进行SMO操作可以增加允许同时插入的leaf page数量。
- 限制Innodb_thread_concurrency可以提高性能,因为它减少了乐观插入线程的数量。
- Blink-tree允许SMO并发执行,提升了性能。
- Blink-tree通过锁的优先级调度实现尽早进行SMO操作。
- 在并发场景中,Blink-tree性能是官方Btree版本的2倍,且比开启Innodb_thread_concurrency提升约13%。
➡️