日期:2014-05-16  浏览次数:20561 次

MySQL源码学习:innodb_autoinc_lock_mode 下自增id不连续的原因

一、问题复现

文件/tmp/data.sql两列,每列一个数字1;

?

输入

CREATE TABLE `t` (

? `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

? `k` int(10) unsigned NOT NULL DEFAULT '0',

? PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

load data infile '/tmp/data.sql' into table t(k);

show create table t;

?

结果:

CREATE TABLE `t` (

? `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

? `k` int(10) unsigned NOT NULL DEFAULT '0',

? PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

?

二、原因分析