01. myisampack 表压缩(了解)
myisampack是一个表压缩工具,可以使用很高的压缩率来对 MyISAM存储引擎 的表进行压缩,使得压缩后的表占用比压缩前小得多的磁盘空间,但是压缩后的表也将成为一个 只读表,不能进行DML操作。
[root@ufo128 test]# ls -ltr
total 84
-rw-rw---- 1 mysql mysql 8586 Feb 6 22:15 ufo123.frm
-rw-rw---- 1 mysql mysql 1024 Feb 6 22:15 ufo123.MYI
-rw-rw---- 1 mysql mysql 0 Feb 6 22:15 ufo123.MYD
-rw-rw---- 1 mysql mysql 65 Jul 19 2020 db.opt
myisam(不支持事务)的数据库的物理文件结构为:
***.frm 元数据,表结构定义
***.MYD myisam存储引擎专用,用于存储myisam表的数据
***.MYI myisam存储引擎专用,用于存储myisam表的索引相关信息
***.opt 编码信息
[root@ufo128 mysql]# ls -l ib*
-rw-rw---- 1 mysql mysql 10485760 Feb 6 22:26 ibdata1
-rw-rw---- 1 mysql mysql 5242880 Feb 6 22:26 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Oct 13 2019 ib_logfile1
innodb(支持事务)的数据库的物理文件结构为:
***.frm 元数据,表结构定义
***.ibd 以独享表空间存储方式使用.ibd文件,并且每个表一个ibd文件
ibdata* 以共享表空间存储方式使用.ibdata文件,所有表共同使用一个ibdata文件
ib_logfiles* 是InnoDB的redolog,主要是在系统崩溃重启时,作事务重做的。而在系统正常时,每次checkpoint时间点,会将之前写入的事务应用到数据文件中。
由参数innodb_log_files_in_group控制,若设置为4,则命名为ib_logfile0~3,这些文件顺序循环覆盖使用。
通常在备份策略或者主从复制时,会对重做日志进行归档保存,最大限度保证数据不丢失。
凡是归档的二进制文件都是落盘使用过的。具有一定的时间保留策略。
[root@ufo128 mysql]# mysqlbinlog -vv ib_logfile0
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ERROR: File is not a binary log file.
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
02. mysqlcheck 表维护(了解)
mysqlcheck 客户端工具可以检查和修复 MyISAM表,还可以优化和分析表。实际上它集成了mysql工具中的 check、repair、analyze、optimize的功能。
-c, check 检查表
-r, repair 修复表
-a, analyze 分析表
-o, optimize 优化表
03. mysqlhotcopy 表热备份(了解)
mysqlhotcopy 是一个perl脚本,它使用 lock tables、flush tables、cp或scp来快速的备份数据库,它是备份数据库或单个表的最快途径。其缺点是 mysqlhotcopy 只能用于备份 MyISAM而且它需要运行在Linux/UNIX环境中。