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%。
🏷️