mysql-id auto_increment.md

删除前面的数据 影响递增吗?

不影响。

自增id 1.插入1000条数据 2.再删除100条 3.再插入 id怎么改变?id一直在自增。删除前面的数据 也一样递增 没有任何影响。

底层原理

mysql维护一个字段 保存了id字段的最大值 无论表数据是否删除 后面的记录插入时 都以这个字段的值(即当前id字段的最大值)递增。

最大值?

看你设置多少位。一般11位。

工作使用

11位数 100亿
1.action表 10万用户 * 10个应用 * 10次 * 每天 = 1000万数据/每天
亿/月
百亿/年 //id达到最大值?怎么办?

2.count表
10万用户 * 10个应用 * 每天 = 100万数据/每天
千万/月
亿/年

长度

CREATE TABLE IF NOT EXISTS kk_user_action (
    id INT(11) NOT NULL AUTO_INCREMENT,
    user_id INT(32) NOT NULL,
    event VARCHAR(256) NOT NULL,
    last_update BIGINT(20) NOT NULL,
    PRIMARY KEY (id),
    INDEX (user_id),
    INDEX (last_update)
) ENGINE=INNODB; 
复制代码

如果从中间设置了其他值 那么从该值开始递增 而不是之前的最大值

1
100

150 //手动设置150
151 //后面的就从150开始递增 而不是100

达到最大值 怎么办

int(11) 改为 BIGINT //可以使用几百年
biancheng.dnbcw.net/mysql/23993…

interger和int

在mysql里 二者一样

参考

dev.mysql.com/doc/mysql-t… dev.mysql.com/doc/refman/…

转载于:https://juejin.im/post/5c6be34751882561de4aa4e0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值