以下都是在Mysql8.0版本 测试的。
ibdata1 共享表不能缩放空间,
独享空间(.idb)删除数据之后,可以缩小空间。
不会占用那么多资源内存。
mysql 默认是独享。
innodb存储数据的方式是通过B+ tree 结构
B+tree 结构是通过索引来构成的。数据存储在树的根部
mysql 有6种日志文件,常用4种
1, 查询日志
2,慢查询日志
3,事务日志【回滚等】
4,二进制日志
5,错误日志
6,中继日志(不常用)
1,查询日志(select),一般不建议开启[对内存压力比较大,对硬盘来说没必要]
代码 show variable like"%general_log%";
配置是不开启的。测试的时候,可以开启下
2,慢查询日志 [*****重要****]
默认不开启,记录指定的 超出某个时间执行的sql(2s-3s)
作用:帮助我们在项目中对于一些查询比较慢的sql进行捕获
针对这个sql 进行优化。
showvarialbes like"%slow _query_log%"
查看慢日志的记录文件。
配置my 可以这样做
slow _query_log = on
slow _query_log_file = D:\php\...mysql\data\mysql_slow.log(放到你部署合适的位置就行,不用非得这个位置)
long_query_time =1 【这个一定需要设置,超过一秒就是慢查询】
showvarialbes like"%slow%"
eg SQL: elect sleep(3);
3.错误日志
1,记录mysql服务运行过程中产生的异常,不是指SQL异常,而指mysql服务异常
2,作用是在mysql服务异常时排错和查错
4,(主要了解) 二进制文件。(会记录执行的sql(update,delete,create, insert)写操作)
1 增量的数据备份及恢复
2 主从的数据同步
Show variable like ”%log_bin%”
Binlog 日志。
2
文章图片
1,记录,还是可以去写入,因为只是规定大小,而不是限制大小
2,1)定时把二进制文件备份到数据库备份中
- 定时对于往期1年的binlog日志文件进行清空(如果服务器的资源充足不建议清空)
- SQL : 查看所有二进制文件,show binary logs。 当前使用的是 show master staus 当前日志。 查询第一个日志 show binlogevents。
- 制定show binlog eventsin "mysql-bin.000002";
- reset master; //清空二进制文件flush logs;//清空所有的日志文件。
用过 xshell恢复
可以做测试,增加5条数据,之后把数据删除。
文章图片
文章图片
笔记开启 二进制日志 会消耗1%的性能,保证安全性
文章图片
文章图片
文章图片
文章图片
2 存储 结构
Myisam 数据和索引是分开存储的。Innodb是一起的。
文章图片
【mysql|Mysql物理文件,Mysql数据恢复()】
文章图片
文章图片
推荐阅读
- mysql|InnoDB数据页结构
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- mysql|一文深入理解mysql
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- SQL|SQL基本功(五)--函数、谓词、CASE表达式
- vue|电商后台管理系统(vue+python|node.js)
- Java及基础算法及数据结构|旧笔记整理(MySQL)
- mysql|双非本211硕,无实习无项目,自学大数据开发,秋招上岸
- 数据库|Mysql--InnoDB存储引擎详解
- MySQL学习笔记-9-order by