怎么理解并掌握mysql参数文件和类型

32次阅读
没有评论

共计 3525 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要讲解了“怎么理解并掌握 mysql 参数文件和类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么理解并掌握 mysql 参数文件和类型”吧!

1. 
第四章: 数据库文件

数据库层面文件:参数文件 my.cnf,错误日志 error log,慢查询日志 slow log,全量日志 general log,二进制日志 binlog,审计日志 audit log,中继日志 relay log,套接字文件 socket,进程文件 pid,表结构文件

存储引擎层面:redo log,undo log 日志文件。

1.1. 
参数文件

参数文件优先级:/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/my.cnf /.my.cnf

想设置默认参数文件,需设置 –defaults-file 参数

my.cnf 文件中,分为 client section 和 server section 两块。

client section 用来配置 mysql 客户端参数。

具体讲解服务端参数,查看通过:show variables like‘% 参数 %’

innodb_buffer_pool:数据库可用内存,物理内存 50%-80%;,5.7 可在线修改;

innodb_buffer_pool_instance:默认未 1,5.6.6 后可调整多个,表示 InnoDB 缓冲区可划分为多个区域,提高并发性。每个缓冲区自管理,通过 show engine innodb status 可看到每个 instance 使用内存的情况。只有 innodb_buffer_pool 大于 1G,多实例才生效。

快速加载内存中元数据信息

实例宕机,内存中数据消失 i,重新读取将导致 IO 压力增大,以下参数可解决:innodb_buffer_pool_load_at_staratup 和 innodb_buffer_pool_dump_at_shutdown

这两个参数设置为启用(5.7 默认启用),在实例关闭时,可将热数据的元数据信息 dump 出来,保存到 ib_buffer_pool 文件中;查看 ib_buffer_pool 文件名称:show variables like‘%innodb_buffer_poll_file%’

当实例启动时,把元数据快速加载到内存,其实所谓元数据就是 space number 和 page number 的列表信息,查询语句如下:

切换数据库:use infomation_schema

select space,page_number from INNODB_BUFFER_PAGE limit3;

innodb_data_file_path:可指定系统表空间文件路径和 ibdata1 文件大小,默认 10M,建议 1G;

innodb_flash_log_at_trx_commit、sync_binlog、innodb_max_dirty_pages_pct:这三个参数影响 redo log、binlog、脏页的刷新参数。

interactive_timeout: 服务器关闭交叉式连接前等待活动的时间,默认 8 小时(28800s);

wait_timeout:
服务器关闭非交叉式连接前等待活动的时间,默认 8 小时(28800s);

这两个参数要一起设置成一样的值,为避免过大连接时间,建议调整为 300-600 秒;5.7 默认 300s;

innodb_thread_concurrency:innodb 内核最大并发线程数,默认 0,表示不限制。

innodb_flash_method:影响 innodb 数据文件、redo log 文件打开刷写模式,建议选择默认值 0_DIRECT,数据文件直接从 mysql innodb buffer 写入到磁盘,不通过 os buffer。

innodb_old_blocks_time: 决定 young pages list 中数据页多久转移到 old pages list.

innodb_old_blocks_pct: 决定 old pages list 占整个列表的百分比。案例:遇到大表扫描活使用 mysqldump 操作,有可能踢走热数据,给数据库带来 IO 压力,可适当减少 innodb_old_blocks_pct 的值分配,保证更多的热数据不会被冲掉。

transaction_isolation: 事务的隔离级别,默认 REPEATABLE-READ,其他还有 READ-UNCOMMITTED, READ-COMMITTED,SERIALIZABLE;

innodb_open_files: 可同时打开.ibd 问问你家的个数,最小 10,默认 300,建议 65535;

innodb_log_buffer_size: 日志缓冲大小,数据改变记录到缓冲区,如 innodb_log_waits(等待日志缓冲刷出的次数)大于 0,而且持续增长,就要增大 log buffer, 范围 16M-64M。

innodb_log_file_size: redo log 日志的大小。

innodb_log_files_in_group:redo log 文件组中日志文件的数据量,默认至少 2 个;

max_connections: 数据库最大连接数,默认 151,可调大活调内部并发数

innodb_thread_concurrency:innodb 内部并发数,默认 0 不受限,根据系统压力,可改成 CPU 两倍。通过设置 thread_pool 让连接复用。

有监控读取 infomation_schma 下面表,可关闭 innodb_stats_on_metadata, 方法:set global innodb_stats_on_metadata=0

expire_logs_days: 代表 binlog 的过期时间,单位是天。

slow_query_log: 慢查询日志开关,1 表示开,生产环境要开启。

long_query_time: 超过时间的日志会记录下来。

log_queries_not_using_indexes: 如 sql 没有索引则会记录到慢查询日志中,生产环境开启。set global log_queries_not_using_indexes = on

server-id: 代表同一组主从结构的唯一标识。

binlog_format: 二进制日志格式,生产环境用 row 安全,不会出现跨库复制丢失数据。

lower_case_table_names: 默认 0 区分表名大小写,1 不区分,以小写存储。

innodb_fast_shutdown: 影响 innodb 关闭时的行为,0 是默认且最安全最慢,3 最快。

  0:InnoDB 关闭时,需执行 purge all,merge change buffer,flush dirty pages,

  1:InnoDB 关闭时,不执行 purge all,merge insert buffer, 不执行 flush dirty page;

  2:InnoDB 关闭时:不执行 full purge,merge insert buffer, 刷新脏页到磁盘,只将 redobuffer 写到日志。

innodb_force_reecovery: 影响 InnoDB 存储引擎恢复时的行为,取值 0 到 6

  0:当需要恢复时执行所有恢复操作。默认为 0

  1:忽略检查到的 corrupt 页;

  2:阻止主线程运行,如主线程要执行 full purge,会导致 crash

  3:不执行事务回滚操作

  4:不执行插入缓冲的合并操作

  5:不查看撤销日志,InnoDB 会见未提交的事务视为已提交;

  6:不执行前滚操作

innodb_status_output,innodb_status_output_locks:建议关闭,即设置为 0,否则将数据库监控的信息全记录到 error.log 中,日志增长过快。

innodb_io_capcity: 影响刷新脏页和插入缓冲的数量,默认 200.

auot_increment_increment: 自增字段每次递增的值,默认 1

auto_increment_offset: 自增字段开始值。

1.2. 
参数类型

参数分为动态参数和静态参数

动态参数:

  set global: 代表全局参数,修改退出会话依然有效,但重启后失效。

  set session: 只对当前会话有效,一旦退出,立即失效。

静态参数:无法在线修改,修改会报 read only variable 错误。只能修改配置文件,重启数据库生效。

感谢各位的阅读,以上就是“怎么理解并掌握 mysql 参数文件和类型”的内容了,经过本文的学习后,相信大家对怎么理解并掌握 mysql 参数文件和类型这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计3525字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)