MySQL命令
MySQL系统变量
MySQL的系统变量是影响MySQL运行的关键,对每个参数做出不同调整,都有可能直接影响到线上数据库的性能,具体的完整系统参数可参考[《MySQL官网文档-系统变量》](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html "《MySQL官网文档-系统变量》")。 但是要注意,虽说MySQL中有一千多个对外暴露的系统参数,但并不是所有的参数都可以让用户调整,MySQL的系统参数分为了三类: - 一类是由MySQL自己维护的参数,这类参数用户无法调整。 - 第二类是以配置文件的形式加载的参数,这类参数必须在MySQL停机的情况下才能更改。 - 第三类是运行时的系统参数,这类是可以由用户去做动态调整的。 咱们需要关心的重点就是第三类参数,那如何观察这类参数呢?方式如下: - show global variables;:查看全局所有用户级别可以看到的系统变量。 - show session variables; | show variables;:查看当前会话的所有系统变量。 - show variables like '%关键字%';:使用模糊查询搜索某个系统变量。 MySQL5.1版本中存在278个系统变量,MySQL8.0版本中存在557个系统变量,这仅仅只是社区版,而在商业版的MySQL中,其系统参数会更多。我们主要看一下常用的: - max_connections:MySQL的最大连接数,超出后新到来的连接会阻塞或被拒绝。 - version:当前数据库的版本。 - ft_min_word_len:使用MyISAM引擎的表中,全文索引最小搜索长度。 - ft_max_word_len:使用MyISAM引擎的表中,全文索引最大搜索长度。 - ft_query_expansion_limit:MyISAM中使用with query expansion搜索的最大匹配数。 - innodb_ft_min_token_size:InnoDB引擎的表中,全文索引最小搜索长度。 - innodb_ft_max_token_size:InnoDB引擎的表中,全文索引最大搜索长度。 - optimizer_switch:MySQL隐藏参数的开关。 - skip_scan:是否开启索引跳跃扫描机制。 - innodb_page_size:InnoDB引擎数据页的大小。 - tx_isolation:事务的隔离级别。 - autocommit:事务自动提交机制。 - innodb_autoinc_lock_mode:插入意向锁的工作模式。 - innodb_lock_wait_timeout:InnoDB锁冲突时,阻塞的超时时间。 - 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_checksums:Redo日志完整性效验机制,默认开启。 - 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-error:error-log错误日志的保存路径和名字。 - slow_query_log:设置是否开启慢查询日志,默认OFF关闭。 - slow_query_log_file:指定慢查询日志的存储目录及文件名。 - general_log:是否开启查询日志,默认OFF关闭。 - general_log_file:指定查询日志的存储路径和文件名。 - innodb_buffer_pool_size:InnoDB缓冲区的大小。 - 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_server:MySQL-Server的字符编码格式。 - character_set_system:系统的字符编码格式。 - collation_database:数据库的字符排序规则。
顶部
收展
底部
[TOC]
目录
MySQL基础操作命令
MySQL 库相关命令
MySQL 表相关命令
MySQL 表分析检查与修复
MySQL 增删改查语句
MySQL 数据库函数
MySQL 索引相关命令
MySQL 事务与锁相关的命令
MySQL 存储过程、存储函数与触发器
MySQL用户与权限管理
MySQL视图与临时表
MySQL导出导入与备份还原
MySQL表分区相关命令
MySQL系统变量
相关推荐
MySQL教程
MySQL索引
MySQL事务
MySQL锁机制
MySQL版本特性