MySQL auto_increment_increment 和 auto_increment_offset

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

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 删除后,仍然在原来基数上增长。
################################################################################

时间: 2024-08-19 10:22:47

MySQL auto_increment_increment 和 auto_increment_offset的相关文章

MySQL auto_increment_increment,auto_increment_offset 用法

MySQL中对于表上ID自增列可以在创建表的时候来指定列上的auto_increment属性:等同于SQL server中的identity属性:Oracle则是通过Sequence方式来实现.在MySQL中,系统变量auto_increment_increment,auto_increment_offset 影响自增列的值及其变化规则.本文主要描述这两个系统变量的相关用法. 1.auto_increment_increment与auto_increment_offset作用 auto_incr

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.

mysql(五)-----keepalived配置mysql的高可用

生产环境对数据库要求很高的,为了避免数据库的突发情况,给他做个保险--用keepalived做高可用环境(此处ip,密码均是乱造的):主:192.1.31.161 端口:3306 用户:vnum 密码:[email protected] 从:192.1.31.162 端口:3306 方案介绍 两台mysql互为主从,但只有master写,slave只负责读.主从通过keepalive做成高可用,当master出问题, 由slave接替master工作,即读写都在slave操作.当master恢复

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

数据库查询中,涉及到auto_increment中的参数变量一共有两个 [[email protected]][(none)]> show variables like 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 1 | | auto_increment_of

MySQL 主主复制

MySQL的主主复制就是两台 mysql 节点互为主从.搭建起来 mysql 主从,再来搭建主主复制就非常简单了. 视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e 在原来主从的基础上做如下操作: 1.开启原从节点的 binlog 日志 2.原从节点创建读取副本的用户 3.在原主节点中让 master 指向从节点 4.在原主节点执行 start slave 命令 以上步骤即可完成主主节点的配置 下面有一

mysql数据库管理

Mysql数据库管理 1.基本信息的查看  mysql> select version();  mysql> select database();  mysql> show variables like '%character%';  mysql> set names utf8;  mysql> show engines;  mysql> show create table test;  mysql> show create database sxjy;  des

mysql 主从的几个参数

log-slave-updates  级联复制 配合--log-bin一起使用 master-connect-retry 主库失联重试时间 read-only 只读 replicate-do-db replicate-do-table replicate-ignore-db replicate-ignore-table replicate-wild-do-table slave-skip-errors 自动跳过错误号 让主库停下来,从库追一下: 主库: mysql> flush tables w

mysql互为主从复制配置笔记--未读,稍后学习

MySQL-master1:192.168.72.128 MySQL-master2:192.168.72.129 OS版本:CentOS 5.4MySQL版本:5.5.9(主从复制的master和slave服务器中的mysql版本相同或者master版本高于slave版本) 一.MySQL master-master配置 1.修改MySQL配置文件 两台MySQL均如要开启binlog日志功能,开启方法:在MySQL-master1  配置文件/etc/my.cnf  [MySQLd]段中加上

[原创]MySQL下关于begin或start transaction是否真正开启新事务的探索?

Server version:         5.6.21-log MySQL Community Server (GPL) 前提提要: 我们知道MySQL的RR(repeatable read)隔离级别下,事务无法看到正在活跃的事务所做的操作包括提交后的. 一般手动开启事务的命令是begin或start transaction:我以前的理解是一旦执行这条语句就已经开启了事务,也就是事务id已经生成(可用于MVCC版本比较),事务A和事务B一起执行begin,事务A的所有操作的提交事务B都看不