面试题答案
一键面试InnoDB
- 常用方法:使用
FLUSH TABLES WITH READ LOCK
(FTWRL)结合mysqldump
工具,或者使用InnoDB自身的热备份工具如Percona XtraBackup。 - 原理:
- FTWRL结合mysqldump:
FLUSH TABLES WITH READ LOCK
会锁定所有数据库表,阻止写入操作,确保数据在备份期间不会发生变化。mysqldump
此时进行数据导出,从而实现备份一致性。但这种方法会阻塞写操作,影响数据库可用性。 - Percona XtraBackup:它是一种热备份工具,利用InnoDB的日志机制。通过复制数据文件和重做日志文件,在恢复时应用重做日志来达到数据一致性。它可以在数据库运行时进行备份,不影响正常业务操作。
- FTWRL结合mysqldump:
MyISAM
- 常用方法:同样可以使用
FLUSH TABLES WITH READ LOCK
结合mysqldump
工具。 - 原理:
FLUSH TABLES WITH READ LOCK
锁定所有表,mysqldump
在锁定期间导出数据。由于MyISAM表不支持事务,备份时直接锁定表来保证数据的一致性。在锁定期间,写操作被阻塞,读操作可以正常进行,但会有一定延迟,因为表被锁定,直到备份完成才释放锁。