MySQL、InnoDB、MyISAM的参数

``参数,也被称之为MySQL的系统变量,这些变量是影响MySQL运行的关键,对每个参数做出不同调整,都有可能直接影响到线上数据库的性能,具体的完整系统参数可参考《MySQL官网文档-系统变量》,官方提供的系统参数数量大致如下:

通过xpath的方式提取数据,大概能够得知MySQL系统变量大概一千个上下,因此这里就不做过多的详细介绍,简单介绍一些较为常用的即可,其他具体的可参考前面给出的官网链接。

但是要注意,虽说MySQL中有一千多个对外暴露的系统参数,但并不是所有的参数都可以让用户调整,MySQL的系统参数分为了三类:
一类是由MySQL自己维护的参数,这类参数用户无法调整。
第二类是以配置文件的形式加载的参数,这类参数必须在MySQL停机的情况下才能更改。
第三类是运行时的系统参数,这类是可以由用户去做动态调整的。

咱们需要关心的重点就是第三类参数,那如何观察这类参数呢?方式如下:

  • • show global variables;:查看全局所有用户级别可以看到的系统变量。

  • • show session variables; | show variables;:查看当前会话的所有系统变量。

  • • show variables like '%关键字%';:使用模糊查询搜索某个系统变量。

MySQL5.1MySQL8.0版本的执行结果如下:

可以很明显的从结果中得知:MySQL5.1版本中存在278个系统变量,MySQL8.0版本中存在557个系统变量,这仅仅只是社区版,而在商业版的MySQL中,其系统参数会更多,下面调出一些重点来聊一聊。

• max_connectionsMySQL的最大连接数,超出后新到来的连接会阻塞或被拒绝。

• version:当前数据库的版本。

• ft_min_word_len:使用MyISAM引擎的表中,全文索引最小搜索长度。

• ft_max_word_len:使用MyISAM引擎的表中,全文索引最大搜索长度。

• ft_query_expansion_limitMyISAM中使用with query expansion搜索的最大匹配数。

• innodb_ft_min_token_sizeInnoDB引擎的表中,全文索引最小搜索长度。

• innodb_ft_max_token_sizeInnoDB引擎的表中,全文索引最大搜索长度。

• optimizer_switchMySQL隐藏参数的开关。

• skip_scan:是否开启索引跳跃扫描机制。

• innodb_page_sizeInnoDB引擎数据页的大小。

• tx_isolation:事务的隔离级别。

• autocommit:事务自动提交机制。

• innodb_autoinc_lock_mode:插入意向锁的工作模式。

• innodb_lock_wait_timeoutInnoDB锁冲突时,阻塞的超时时间。

• innodb_deadlock_detect:是否开启InnoDB死锁检测机制。

• innodb_max_undo_log_size:本地磁盘文件中,Undo-log的最大值,默认1GB

• innodb_rollback_segments:指定回滚段的数量,默认为1个。

• innodb_undo_directory:指定Undo-log的存放目录,默认放在.ibdata文件中。

• innodb_undo_logs:指定回滚段的数量,默认为128个,也就是之前的innodb_rollback_segments

• innodb_undo_tablespaces:指定Undo-log分成几个文件来存储,必须开启innodb_undo_directory参数。

• back_log:回滚日志的最大回撤长度(一条数据的最长版本链长度)。

• innodb_undo_log_truncate:是否开启Undo-log的压缩功能,即日志文件超过一半时自动压缩,默认关闭。

• innodb_flush_log_at_trx_commit:设置redo_log_buffer的刷盘策略,默认每次提交事务都刷盘。

• innodb_log_group_home_dir:指定redo-log日志文件的保存路径,默认为./

• innodb_log_buffer_size:指定redo_log_buffer缓冲区的大小,默认为16MB

• innodb_log_files_in_group:指定redo日志的磁盘文件个数,默认为2个。

• innodb_log_file_size:指定redo日志的每个磁盘文件的大小限制,默认为48MB

• innodb_log_write_ahead_size:设置checkpoint刷盘机制每次落盘动作的大小。

• innodb_log_compressed_pages:是否对Redo日志开启页压缩机制,默认ON

• innodb_log_checksumsRedo日志完整性效验机制,默认开启。

• log_bin:是否开启bin-log日志,默认ON开启,表示会记录变更DB的操作。

• log_bin_basename:设置bin-log日志的存储目录和文件名前缀,默认为./bin.0000x

• log_bin_index:设置bin-log索引文件的存储位置,因为本地有多个日志文件,需要用索引来确定目前该操作的日志文件。

• binlog_format:指定bin-log日志记录的存储方式,可选Statment、Row、Mixed

• max_binlog_size:设置bin-log本地单个文件的最大限制,最多只能调整到1GB

• binlog_cache_size:设置为每条线程的工作内存,分配多大的bin-log缓冲区。

• sync_binlog:控制bin-log日志的刷盘频率。

• binlog_do_db:设置后,只会收集指定库的bin-log日志,默认所有库都会记录。

• log-errorerror-log错误日志的保存路径和名字。

• slow_query_log:设置是否开启慢查询日志,默认OFF关闭。

• slow_query_log_file:指定慢查询日志的存储目录及文件名。

• general_log:是否开启查询日志,默认OFF关闭。

• general_log_file:指定查询日志的存储路径和文件名。

• innodb_buffer_pool_sizeInnoDB缓冲区的大小。

• innodb_adaptive_hash_index:是否开启InnoDB的自适应哈希索引机制。

• innodb_compression_level:调整压缩的级别,可控范围在1~9,越高压缩效果越好,但压缩速度也越慢。

• innodb_compression_failure_threshold_pct:当压缩失败的数据页超出该比例时,会加入数据填充来减小失败率,为0表示禁止填充。

• innodb_compression_pad_pct_max:一个数据页中最大允许填充多少比例的空白数据。

• innodb_log_compressed_pages:控制是否对redo-log日志的数据也开启压缩机制。

• innodb_cmp_per_index_enabled:是否对索引文件开启压缩机制。

• character_set_client:客户端的字符编码格式。

• character_set_connection:数据库连接的字符编码格式。

• character_set_database:数据库的字符编码格式。

• character_set_results:返回的结果集的编码格式。

• character_set_serverMySQL-Server的字符编码格式。

• character_set_system:系统的字符编码格式。

• collation_database:数据库的字符排序规则。

• :剩下的就不再列出来了,大家可根据查询出的变量名,去官网文档查询释义即可。

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值