数据迁移方面的工作:
- 重构老系统:使用新的表结构来存储数据
- 单库拆分分库分表、分库分表扩容
- 大表修改表结构定义
MySQL上常用的两款数据备份工具:mysqldump和XtraBackup
mysqldump:一个用于备份和恢复数据库的命令行工具,允许用户导出MySQL数据库的结构、数据及与表之间的关系,以便在数据库发生问题时进行恢复。是一个逻辑备份工具,导出的内容是一条条SQL
XtraBackup:使用了InnoDB存储引擎的数据备份技术,支持增量备份和恢复,并且支持多主机备份和恢复。是一个物理备份工具,相当于直接复制InnoDB的底层存储文件。
如果你使用的不是 MySQL,可以自己收集一下你使用的数据库的工具。要注意分析这些工具的优缺点,尤其是导入导出速度以及可行的优化手段。
innodb_autoinc_lock_mode
是InnoDB引擎里面控制自增主键生成策略的参数,有三个取值:
- 0:使用表自增键锁,但是锁在INSERT语句结束之后就释放了
- 1:使用表自增锁,如果是普通的INSERT INTO VALUE 或者 INSERT INTO VALUES 语句,申请了主键就释放锁,而不是整个INSERT语句执行完毕才释放。如果是INSERT SELECT 等语句,因为无法确定究竟要插入多少行,所以都是整个INSERT语句执行完毕才释放。
- 2:使用表自增锁,所有的语句都是申请了主键就立刻释放