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

继续阅读