参考这一篇文章:(不过我对这一篇文章有异议)

http://blog.csdn.net/leshami/article/details/39779509

1:搭建测试环境

create table t
(t int(10) primary key auto_increment);

mysql> show variables like '%increment%';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| div_precision_increment | 4 |
| innodb_autoextend_increment | 8 |
+-----------------------------+-------+
4 rows in set (0.00 sec)

执行3次插入操作,作为测试数据

insert into t values ();

insert into t values ();

insert into t values ();

#插入3个测试数据

mysql> select * from t;
+---+
| t |
+---+
| 1 |
| 2 |
| 3 |
+---+
3 rows in set (0.00 sec)

2:修改步长为5

mysql> set auto_increment_increment=5;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%increment%';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 1 |
| div_precision_increment | 4 |
| innodb_autoextend_increment | 8 |
+-----------------------------+-------+
4 rows in set (0.00 sec)

然后执行三次插入操作:

mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)

mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)

mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)

mysql> select * from t;
+----+
| t |
+----+
| 1 |
| 2 |
| 3 |
| 6 |
| 11 |
| 16 |
+----+
6 rows in set (0.00 sec)

结论:初始值为1:步长:1,改为初始值1:步长:5。之后数值从3变到6了。
###################################################################
#插入4个测试数据,然后改步长为5.然后再插入一次数据。

mysql> select * from t;
+---+
| t |
+---+
| 1 |
| 2 |
| 3 |
| 4 |
| 6 |
+---+
5 rows in set (0.00 sec)

可以看到当之前的数据量小于步长5时候,新插入的数据还是6

###################################################################

###################################################################
#插入5个测试数据,然后改步长为5,然后再插入一次数据。

mysql> select * from t;
+----+
| t |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 11 |
+----+
7 rows in set (0.00 sec)

可以看到当,之前的数据量小于步长5的时候,插入的新数据还是6。

###################################################################

###################################################################
插入6个测试数据,然后改步长为5,然后再插入一次数据。直接变为11了。

mysql> select * from t;
+---+
| t |
+---+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+---+
6 rows in set (0.00 sec) mysql> set auto_increment_increment=5;
Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%increment%';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| auto_increment_increment | 5 |
| auto_increment_offset | 1 |
| div_precision_increment | 4 |
| innodb_autoextend_increment | 8 |
+-----------------------------+-------+
4 rows in set (0.00 sec) mysql> insert into t values ();
Query OK, 1 row affected (0.00 sec) mysql> select * from t;
+----+
| t |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 11 |
+----+
7 rows in set (0.00 sec)

###################################################################
第一次是插入了3个测试数据,然后改步长为5,然后再插入数据为6;第二次插入4个测试数据,然后改步长为5,然后再插入数据还是6;插入5个测试数据,然后改步长为5,然后再插入数据还是6;插入6个测试数据,然后改步长为5,就变为11了。
如果前面的数据小于等于步长,那么改步长后新插入的数据就是步长+初始值。如果大于步长,则直接在此基础上增长.

################################################################################
delete from 删除后,仍然在原来基数上增长。
################################################################################

MySQL auto_increment_increment 和 auto_increment_offset的更多相关文章

  1. Mysql设置auto_increment_increment和auto_increment_offset

    查看与设置: show variables like '%auto_inc%'; show session variables like '%auto_inc%'; -- //session会话变量 ...

  2. MySQL自增属性auto_increment_increment和auto_increment_offset

    MySQL的系统变量或会话变量auto_increment_increment(自增步长)和auto_increment_offset(自增偏移量)控制着数据表的自增列ID. mysql> sh ...

  3. MySQL系统变量auto_increment_increment与auto_increment_offset学习总结

    在MySQL中,系统变量auto_increment_increment与auto_increment_offset是与自增列相关的两个参数变量.在官方文档中,将其划分为Replication Mas ...

  4. MySQL学习6 - 完整性约束

    一 介绍 二 not null 与default 三 unique 四 primary key 五 auto_increment 六 foreign key 快速理解foreign key 创建两张表 ...

  5. MySQL 中有关auto_increment及auto_increment_offset方面的介绍

    数据库查询中,涉及到auto_increment中的参数变量一共有两个 [root@localhost][(none)]> show variables like 'auto_inc%'; +- ...

  6. MySQL 系列(四)主从复制、备份恢复方案生产环境实战

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  7. [原] KVM 环境下MySQL性能对比

    KVM 环境下MySQL性能对比 标签(空格分隔): Cloud2.0 [TOC] 测试目的 对比MySQL在物理机和KVM环境下性能情况 压测标准 压测遵循单一变量原则,所有的对比都是只改变一个变量 ...

  8. 我的MYSQL学习心得(十七) 复制

    我的MYSQL学习心得(十七) 复制 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  9. 浅析MySQL基于ROW格式的二进制日志

    上文分析的二进制日志实际上是基于STATEMENT格式的,下面我们来看看基于ROW格式的二进制日志,毕竟,两者对应的binlog事件类型也不一样,同时,很多童鞋反映基于ROW格式的二进制日志无法查到原 ...

随机推荐

  1. python+Django+apache的配置

    下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载python-2.5.4.msi 下载Django 下载MySQL-python- ...

  2. Namespace declaration statement has to be the very first statement in the script

    php 中 Namespace declaration statement has to be the very first statement in the script 错误解决方法: 在PHP文 ...

  3. IntelliJ IDEA 学习(五)类注释和自定义方法注释

    intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们经常会感觉他很复杂,尤其刚从eclipse转过来的童鞋,相信刚开始的那段经历都是不堪回首的         如何实现 ...

  4. dmesg命令的使用

    dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看(print or control the ...

  5. iOS开发者帐号申请指南

    iOS开发者的申请流程如果你是一个开发团队,在你打算掏腰包购买iOS开发者授权之前,最好先问一下你的同事,是否已经有人获得了开发许可,因为一个开发许可一年内最多可以授权给111个设备来开发测试.如果你 ...

  6. 转 UIActivityIndicatorView、UIProgressView 活动与进度指示器-IOS开发

    活动指示器(UIActivityIndicatorView)可以告知用户有一个操作正在进行中.进度指示器(UIProgressView )也具有同样功能,而且还可以告知用户离操作结束还多远. 这两个指 ...

  7. Extjs文件选择器

    Ext.hoo.component.FileBrowserComponent.js /** * Ext.hoo.component.FileBrowserWindow 系统文件浏览选择组件,可以选定电 ...

  8. Selenium2+python自动化60-异常后截图(screenshot)

    前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据. 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一.截图方 ...

  9. matlab 文件遍历

    function MyGetFiles(F)path=F;filelist=dir(fullfile(path,'*.JPG'));n=length(filelist);for i=1:n f=str ...

  10. 【Docker】容器、虚拟机与Docker概念全解析

    导读 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.本文立足于新手,从容器和虚拟机两个大 ...