MySQL
社恐Coder
社恐症也要写代码,欢迎关注同名微信号。
展开
-
MySQL自增主键知识点总结
自增主键的实现####自增值的存储MyISAM引擎将当前自增值存储在表数据文件中。InnoDB引擎在5.7及之前将当前自增值存储在内存中,MySQL重启时从表中查询自增列最大值+步长作为当前自增值。InnoDB引擎在8.0及之后版本中将自增值变动记录存储在redo log中,重启MySQL后根据redo log恢复之前的自增值。自增值的变化执行插入语句时,如果自增列的值不指定,或指定为0或null,则插入时将表当前自增值填入该列,并增长自增值(当前自增值+步长)。执行插入语句时,如果自增列指定原创 2020-09-20 23:21:45 · 188 阅读 · 0 评论 -
MySQL自增字段的自增值超过字段声明的范围怎么办
问题来源面试遇到一个问题,设置自增主键的数据类型为int(10),范围设置的比较小,如果自增超过这个范围会怎么样?当时一脸懵逼,确实没考虑过这个情况。思路与猜测首先是知道,字段类型声明为int(10),后面的长度10只是zerofill的长度,不影响数据的存储,也就是自增超过的范围应该是int类型字段的最大值。| 类型 | 存储占用字节 | 最小值 | 最大值 || 无符号int | 4 | 0 |dd || 有符号int | 4 | -2147483648(-2^31) | 21474836原创 2020-09-12 12:14:48 · 1971 阅读 · 2 评论