8.0 新特性 - innodb_ddl_threads

这篇具有很好参考价值的文章主要介绍了8.0 新特性 - innodb_ddl_threads。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

MySQL 8.0.27 引入了一个新变量来控制 InnoDB 可用于创建(排序和构建)二级索引的最大并行线程数:innodb_ddl_threads 通过调整该参数,可以提升二级索引的创建速度。

参数介绍

1. innodb_ddl_threads

创建二级索引时,在排序和构建阶段,使用线程的个数,一定程度上可以加快索引的创建速度,默认为 4 个。

2. innodb_ddl_buffer_size

默认为 1 MB,该参数是避免开启很多线程后,由于内存不足导致加索引失败。

3. innodb_parallel_read_threads

默认为 4,并行读取聚簇索引的线程数,可以提升 check table 速度。

4. innodb_online_alter_log_max_size

该参数是 online DDL 中的参数,如果变更期间依然有业务请求,可能会产生大量的变更日志 innodb_ddl_threads 的使用场景肯定也是大表加索引,变更持续时间可能会更长,所以需要注意该参数的大小,如果过小会导致 DDL 变更失败,当然是在线变更的场景下。

测试结果

可以使用 mysql_random_data_load 造一张大表:

mysql_random_data_load -h127.0.0.1 -u'root' -p --max-threads=10 test test_index 100000000

下面是实验结果,可以参考:

ddl buffer size ddl threads parallel read theads execution time
1048576 4 4 9 min 0.6838 sec
104857600 8 8 4 min 8.3601 sec
1048576000 8 8 3 min 9.1862 sec
1048576000 16 16 3 min 7.4079 sec
1048576000 16 8 3 min 4.1161 sec
1048576000 12 4 3 min 8.7854 sec
1048576000 4 12 3 min 5.9497 sec
1048576000 4 4 3 min 12.2435 sec
2097152000 4 4 2 min 43.6280 sec
2097152000 8 8 2 min 44.6516 sec

参考资料:https://dev.mysql.com/doc/refman/8.0/en/online-ddl-parallel-thread-configuration.html文章来源地址https://www.toymoban.com/news/detail-713379.html

到了这里,关于8.0 新特性 - innodb_ddl_threads的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL 8.0 Reference Manual(读书笔记73节--Thread Concurrency for InnoDB and I/O Threads)

    InnoDB uses operating system threads to process requests from user transactions. (Transactions may issue many requests to InnoDB before they commit or roll back.) On modern operating systems and servers with multi-core processors, where context switching is efficient, most workloads run well without any limit on the number of concurrent threads. In situation

    2024年03月25日
    浏览(47)
  • 深入探索MySQL的innodb_thread_concurrency配置

    含义和作用 innodb_thread_concurrency 参数限定了InnoDB存储引擎可以同时执行的线程数目。这个设置有助于控制并发操作,从而影响数据库处理事务的效率。通过限制活跃线程数量,可减少上下文切换的开销,避免过多的并发线程竞争资源导致性能降低。 查询和配置方式 查询当前

    2024年01月25日
    浏览(59)
  • MySQL 8.0中InnoDB buffer pool size进度更透明

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者:Yejinrong/叶金荣 文章来源:GreatSQL社区原创 MySQL 8.0 up up up~ 从MySQL 5.7开始,支持在线动态调整 innodb buffer pool,并为此新增了一个状态变量 Innod

    2024年02月02日
    浏览(34)
  • MySQL 8.0 Reference Manual(读书笔记63节--InnoDB Locking)

    To implement a large-scale, busy, or highly reliable database application, to port substantial【səbˈstænʃl】 code from a different database system, or to tune MySQL performance, it is important to understand InnoDB locking and the InnoDB transaction model. InnoDB implements【ˈɪmplɪments 实施; 执行; 贯彻; 使生效; 】 standard row-level lock

    2024年04月22日
    浏览(51)
  • MySQL 8.0 Reference Manual(读书笔记80节-- InnoDB Row Formats)

    The row format of a table determines how its rows are physically stored, which in turn can affect the performance of queries and DML operations. As more rows fit into a single disk page, queries and index lookups can work faster, less cache memory is required in the buffer pool, and less I/O is required to write out updated values. The data in each table is

    2024年04月08日
    浏览(54)
  • MySQL 8.0 Reference Manual(读书笔记69节--InnoDB Startup Configuration)

    有些InnoDB的配置,是在实例初始化时,就决定了,所以,建议写在configuration file 文件中。 Because MySQL uses data file, log file, and page size settings to initialize InnoDB, it is recommended that you define these settings in an option file that MySQL reads at startup, prior to initializing InnoDB. Normally, InnoDB is initialize

    2024年03月24日
    浏览(59)
  • MySQL 8.0 Reference Manual(读书笔记70节--InnoDB Buffer Pool Configuration)

    When increasing or decreasing innodb_buffer_pool_size , the operation is performed in chunks. Chunk size is defined by the innodb_buffer_pool_chunk_size configuration option, which has a default of 128M.-----innodb_buffer_pool_size的扩容和缩容,都是以innodb_buffer_pool_chunk_size为单位进行的,其默认为128M 。 Buffer pool size must always

    2024年03月24日
    浏览(51)
  • MySQL 8.0 Reference Manual(读书笔记75节--Optimizer Statistics for InnoDB (1))

    This section describes how to configure persistent and non-persistent optimizer statistics for InnoDB tables. Persistent optimizer statistics are persisted across server restarts【意思是重启操作,对这些数据没有影响】, allowing for greater plan stability and more consistent query performance. Persistent optimizer statistics also provide con

    2024年03月27日
    浏览(45)
  • MySQL 8.0 Reference Manual(读书笔记76节--Optimizer Statistics for InnoDB (2))

    开始讲解 非固化的统计数据 This section describes how to configure non-persistent optimizer statistics. Optimizer statistics are not persisted to disk when innodb_stats_persistent=OFF or when individual tables are created or altered with STATS_PERSISTENT=0. Instead, statistics are stored in memory, and are lost when the server is shut down. Statis

    2024年03月27日
    浏览(47)
  • MySQL 8.0 Reference Manual(读书笔记71节--InnoDB Buffer Pool Configuration (2))

    【目的是未来提高并发,减少竞争】 For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency, by reducing contention as different threads read and write to cached pages. This feature is typically intended for systems with a buffer pool size in the multi-gigabyte range. Mu

    2024年03月24日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包