在 MariaDB 10.11 中,有一些参数发生了变化,下面就一起来看一下。
slow query
在 mariadb 10.11 中,与慢查询相关的参数共13个,相比于 mariadb 10.6,有几个参数发生了变化。
MariaDB [(none)]> show variables like '%slow%';
+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
| log_slow_admin_statements | ON |
| log_slow_disabled_statements | sp |
| log_slow_filter | admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_min_examined_row_limit | 0 |
| log_slow_query | OFF |
| log_slow_query_file | shawnyan-slow.log |
| log_slow_query_time | 10.000000 |
| log_slow_rate_limit | 1 |
| log_slow_slave_statements | ON |
| log_slow_verbosity | |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | shawnyan-slow.log |
+---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
13 rows in set (0.004 sec)
新增参数
- log_slow_min_examined_row_limit
如果查询检查的行数超过此数, 则记录到慢日志中。默认值为0.
参数重命名
- log_slow_query
之前名为 slow_query_log, 用于控制是否开启慢查询日志。
- log_slow_query_file
之前名为 slow_query_log_file, 用于设定慢查询日志的位置。
- log_slow_query_time
之前名为 long_query_time, 用于设定记录慢查询时间的阈值。默认值为10秒。
innodb
innodb 有四个相关参数发生了变化,分别是 innodb_buffer_pool_chunk_size,innodb_log_file_buffering, innodb_log_write_ahead_size, innodb_prefix_index_cluster_optimization
- innodb_buffer_pool_chunk_size (new)
用于动态调整缓冲池大小的块大小。 注意,更改此设置会更改缓冲池的大小。 当使用大页面时,此值有效地四舍五入到大页面大小的下一个倍数。 参见动态设置Innodb缓冲池大小。 从MariaDB 10.8.0开始,该变量根据缓冲池大小自动调整大小。
默认值为0,代表自动控制大小 autosize。
- innodb_log_file_buffering (new)
MariaDB 10.9.2 引入的新参数。代表是否开启ib_logfile0的文件系统缓存。 在MariaDB 10.8.3中,MariaDB在Linux上默认关闭了InnoDB预写日志文件(ib_logfile0)的文件系统缓存。 特别是在innodb_flush_trx_log_at_commit=2的情况下,通过文件系统缓存写入日志通常会提高吞吐量,特别是在慢速存储或少量并发事务时。 对于innodb_flush_log_at_trx_commit的其他值,直接写入通常更快,但并不总是更快。 禁用日志上的文件系统缓存是否值得,可能取决于存储类型、工作负载和操作系统内核版本。 如果服务器启动时设置为innodb_flush_log_at_trx_commit=2,则该值将更改为ON。 如果innodb_flush_method设置为O_DSYNC,则设置为OFF。 仅限Linux和Windows。
- innodb_log_write_ahead_size (remove)
InnoDB重做日志提前写单元大小,以避免读写。 应该匹配操作系统缓存块IO大小。 在MariaDB 10.8中删除,而在Linux和Windows上,底层存储的物理块大小被检测和使用。
- innodb_prefix_index_cluster_optimization (Deprecated)
启用前缀优化,有时可以避免集群索引查找。 从MariaDB 10.10开始已弃用并被忽略,因为优化现在总是启用的。
wsrep
对于单节点的mariadb用不上wsrep相关参数, 但是对于galera集群来说,就需要参考下面几个参数的变化。
- wsrep_allowlist (new)
允许的IP地址,逗号分隔。mariadb 10.10 引入的新参数, 用于控制那些ip可以加入集群。
- wsrep_replicate_myisam (Removed)
是否复制MyISAM表的DML更新。 此功能仍处于试验阶段,不应在生产系统中依赖。 在MariaDB 10.6中已弃用,并在MariaDB 10.7中删除,使用wsrep_mode代替。
- wsrep_status_file (new)
wrep状态输出文件名。mariadb 10.9 引入的新参数。 具体可参考 https://www.modb.pro/db/641033
- wsrep_strict_ddl (Removed)
如果设置,则拒绝不支持Galera复制的受影响表上的DDL语句。 这是通过检查表是否是InnoDB来完成的,InnoDB是目前唯一完全支持Galera复制的表。 如果实验性的wsrep_replicate_myisam设置为ON,则MyISAM表不会触发错误。 如果设置,应该在集群中的所有表上设置。 在MariaDB 10.7中删除。
总结
从 MariaDB 10.6 到 10.11,经历两年的发展mariadb本身也发生了很大的变化,本文仅列举12个重要的参数变化。
标签:slow,log,一览,参数,innodb,10.11,query,MariaDB From: https://blog.51cto.com/u_15081581/6448037