用户9879380
mysql --innodb之文件分类
原创
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
返回腾讯云官网
用户9879380
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
返回腾讯云官网
社区首页
>
专栏
>
mysql --innodb之文件分类
mysql --innodb之文件分类
原创
用户9879380
关注
发布于 2025-03-07 15:02:16
发布于 2025-03-07 15:02:16
49
0
举报
文件分类
参数文件:让mysql实例启动时可以找到数据库文件,初始化参数等
日志文件:记录mysql运行或者做出响应时写入的文件,比如二进制日志文件、慢查询日志文件、错误日志文件等
socket文件:当用unix域套接字方式进行连接时需要的文件
pid文件:mysql实例进程ID文件,由参数pid_file空间,文件名为主机名.pid
mysql表结构文件:存放mysql表结构定义文件
存储引擎文件:存储引擎文件存储记录和索引等数据
参数文件
使用场景:在mysql启动时使用参数文件,若启动时未找到参数文件会使用默认配置
参数定义:对mysql运行中的数据或者限制等进行调整
参数类型
动态参数:实例运行中可以修改的参数
静态参数:实例生命周期内不允许修改,想要修改只能修改配置文件后重启生效
参数设置范围
global : 设置后在当前运行期间生效,重启后以配置文件为准
session : 设置后在当前会话中生效
命令:set global | session system_var_name=expr
日志文件
错误日志
错误日志文件会记录mysql启动,运行,关闭过程中的错误信息,也会包含一些正确信息,比如mysql启动成功等
show variables like 'log_error'可查看错误文件的路径和文件名
慢查询日志
用来查询执行时间较长的sql,帮助解决/优化sql问题
long_query_time: 运行时长超过该参数的sql都将被记录到慢查询日志中
log_queries_not_using_indexes:设置为ON,则运行sql没有使用索引将被记录到慢查询日志中
log_throttle_queries_not_using_indexes: 指定时间间隔内,未使用索引查询的sql被记录到慢查询日志的最大数量。默认为0,表示不限制,也就是会将所有未使用索引查询的sql都会记录到慢查询日志
mysqldumpslow: 用来查询慢查询日志
查询日志
记录所有对mysql数据库的请求信息
默认文件名 主机名.log
二进制日志
记录对mysql数据库执行更改的所有操作,不包括select和show这类操作
参数
log-bin =name: 可以修改二进制日志名
max_binlog_size: 单个二进制日志的最大size,超过则生成新的二进制日志
binlog_cache_size: 事务未提交前二进制日志缓存的大小,若事务记录大于设置值,则将日志写到临时文件中
binlog_cache_use: 记录使用缓冲写二进制日志的次数
binlog_cache_disk_use: 记录使用临时文件写二进制日志的次数
sync_binlog: 表示每写缓存多少次同步到磁盘(二进制日志)
binlog-do-db: 表示需要写入那些db日志到二进制日志中,默认为空
binlog-ignore-db: 表示忽略那些db日志写入二进制日志中,默认为空
binlog_format: 二进制日志格式。有ROW、STATEMENT、MIXED三种格式,ROW记录表的更改情况,STATEMENT记录SQL语句,MIXED是混合格式,默认用STATEMENT,个别情况用ROW. OW在sql语句影响的数据较多时占用的磁盘量会上升
mysqlbinlog命令可以查看二进制日志详情
作用
进行数据恢复
主从同步
判断二进制日志中是否存在注入型sql攻击
innodb存储引擎文件
表空间文件
系统表空间文件
也常被叫做默认表空间文件和共享表空间文件
包含数据字典,共享系统表,undo日志,双写缓冲
innodb_data_file_path 参数可以配置大小和位置,且允许设置自动增长。innodb_data_file_path = /db/ibdata1:200M;/dr2/db/ibdata2:200M:autoextend
独立表空间文件
为每张表生成独立表空间
命名规则:表名.idb
独立表空间打开需要将innodb_file_per_table 参数设置为ON
用来存储表数据、索引等信息,其他信息还是放在系统表空间
重做日志文件
用来防止断电等意外情况,数据库需要依赖重做日志恢复到断电前的状态
重做日志文件采用循环写入和日志组来提高日志的高可用
重做日志在满了情况下会触发checkpoint检查,进而触发将脏页刷新到磁盘的动作
重做日志和二进制日志的区别,重做日志是针对页,二进制日志是针对具体的sql操作。重做日志是恢复数据库状态使用,二进制日志一般用于主从同步
innodb_log_file_size 参数指定重做日志文件的大小
innodb_log_files_in_group 指定重做日志文件的数量
innodb_mirrored_log_groups 指定日志镜像文件组的数量
innodb_log_group_home_dir 指定日志文件组路径
疑惑
关于重做日志镜像的部分,有熟悉的同学欢迎留言
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
mysql
innodb
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
mysql
innodb
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
目录
文件分类
参数文件
日志文件
innodb存储引擎文件
疑惑
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐