一文读懂 MySQL 并行查询 & DDL

摘要

随着用户表上数据量的增加,一些SQL的执行时间会变得越来越长。比如一些需要全表扫描的查询SQL,数据扫描过程会耗费一定的时间,表越大时扫描时间越久。再比如一些创建二级索引、重建表的DDL操作,会扫描全表,并做排序操作,表越大时扫描和排序耗时都会比较久。

为提升SQL查询性能,MySQL社区于8.0.14推出了InnoDB并行扫描特性,可通过innodb_parallel_read_threads变量控制并行扫描聚簇索引的线程数量;于 8.0.27 支持并行创建索引,可通过innodb_ddl_threads控制创建二级索引的并行线程数量,加速索引创建过程。MySQL的并行当前仅限于InnoDB层对全表的一个并行。

本文以8.0.37代码为基准,对InnoDB层的这些并行技术做一些基本介绍、原理解析。

欢迎在评论区写下你对这篇文章的看法。

评论

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-26 13:26
浙ICP备14020137号-1 $Carte des visiteurs$