MySQL有多种日志文件类型,且一旦日志文件写入开启,都是会日志先行。
1.错误日志
(作用:记录运行异常并非sql异常)
2.二进制日志
(作用:用于恢复数据)
(注:开启会消耗1%性能)
3.事务日志(重做日志【redo log】 和 回滚日志【undo log】)
(作用:对于事务数据的修复和回滚)
(注:事务在开启和使用的时候都是日志先行)
4.慢查询日志
(作用:记录在某些执行效率低的sql语句)
5.查询日志
(作用:记录有关于查询的select 操作日志)
(注:文件命名一般根据数据库名字.log,一般情况下并不会直接运用;除非有一些特殊的情况)
一般来说二进制日志 慢查询日志 还有事务日志 是使用的重点
MySQL核心data 目录(即数据文件):
(此只介绍两种使用最多的引擎myisam和innodb 即:重点介绍innodb)
.myd后缀结尾的文件为 : myisam 引擎文件
myisam 数据存放在.myd 而.myi存放的是索引
.ibd后缀结尾的文件为 : innodb 引擎文件
.ibd文件也根据表空间结构分为独享和共享表空间
共享表空间的数据都存放在data目录下面的 ibdata文件
独享表空间的数据都存放在库目录下面的 .ibd文件里
共享表空间:
优点:方便统一管理 会因为一些标识 来做数据库的区分
缺点:删除某个数据表以后 文件占据的空间还是存在
独享表空间:
优点:数据和索引都会在不同的表空间(即:生成不同的数据文件) 单表移植性好 空间可以回收
缺点:数据表若是太大 单表也会大
独享表空间空间利用率还有性能会比共享表空间好
使用独享或共享可以通过设置和转化
查询当前数据库是独享表空间还是共享表空间:show variables like 'innodb_file_per%'
设置:
innodb_file_per_table = 1 独享表空间
innodb_file_per_table = 0 共享表空间