提示:精选面试题
一、mysql是什么?
MySQL是一种流行的开源关系型数据库管理系统,广泛应用于Web开发、数据分析和企业级应用。了解MySQL的基础知识和高级特性、数据库设计、性能优化、高可用性和扩展性、安全性和维护是成为一名优秀MySQL开发者或管理员的基本要求。
二、MySQL日志binlog、redolog、undolog
- binlog(二进制日志)
binlog 是 MySQL 的服务器层面实现的日志,记录了对数据库所有操作的详细信息。它是以二进制格式存储的,包括所有 DDL 和 DML 操作,比如 CREATE TABLE、INSERT、UPDATE、DELETE 等等。binlog 的作用主要有两个:
- 数据恢复:当数据库出现故障或者数据丢失时,可以通过 binlog 进行数据恢复。binlog 中记录了每个事务的所有操作,因此可以按照时间顺序逐步回滚,直到恢复到指定的时间点为止。
- 归档和复制:binlog 也可以用于归档和备份,比如将 binlog 定期转储到远程存储设备中,以便进行长期存储和数据分析。另外,binlog 还可以用于数据库的主从复制,将主库的 binlog 复制到从库上执行,从而保证两台数据库的数据一致性。
- redolog(重做日志)
redolog 是 InnoDB 存储引擎层面实现的日志,仅记录了对 InnoDB 表的修改操作。它是一个循环写入的文件&#