加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-12-22 21:18:16 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要讲解了怎么理解并掌握mysql参数文件和类型,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习怎么理解并掌握mysql参数文件和类型吧! 1. 第四章:数据库文件 数据库层面文件:参数文件my.cnf,错误日
这篇文章主要讲解了“怎么理解并掌握mysql参数文件和类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解并掌握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、脏页的刷新参数。
 
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写到日志。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!