码迷,mamicode.com
首页 > 数据库 > 详细

MySQL--自增列持久化问题

时间:2019-02-17 22:13:07      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:--   数据   紧急   tables   重点   mysql重启   语句   根据   使用   

======================================================================

自增列持久化问题

5.5/5.6/5.7三个版本中,MySQL并不会将自增列分配的自增值信息固化到磁盘,当MySQL重启后,会根据自增列上当前最大值和参数auto_increment_offset来确定下一次的自增值,为快速获取自增列上最大值,MySQL要求自增列必须建有索引。

如果一张自增表的数据在重启实例前被清空,实例重启后该表数据会从”1”开始自增(假设表的自增初始值定义为1)。

在某次数据库升级过程中,某张业务表”恰好”因为业务逻辑将表中所有数据删除,重启后该表自增值从1开始生成,当该表数据流转到其他表出现数据冲突,发现问题后,我们紧急手动设置该表自增值,避免事故进一步恶化,并再后期类似操作时,重点关注此类自增表。

如果业务会对自增表数据进行硬删除,在服务器重启前应重点关注该自增表使用的自增值,可以通过information_schema.tables中的auto_increment列来获取。

PS1:在MySQL 8.0中引入自增列持久化特性,可以避免上述问题。

 

 

=====================================================================

自增列初始值问题

自增列初始值和增量值取决于:

1、全局参数auto_increment_increment和auto_increment_offset,这两参数作用于所有自增表,主要应用于分库分布场景。

2、表创建语句, 在使用SHOW CREATE TABLE或MySQLDump等命令导出建表语句时,建表语句中会包含表当前最大值。

3、服务器重启后,根据表中自增列最大值确定下一次的自增值。

 

 

=====================================================================

MySQL--自增列持久化问题

标签:--   数据   紧急   tables   重点   mysql重启   语句   根据   使用   

原文地址:https://www.cnblogs.com/gaogao67/p/10392764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!