abc可以正确插入数据表,但是插入d时报错:
abc可以正确插入数据表,但是插入d时报错:
主键ID改为无符号Long类型后abcd全部可以正确插入:
如果希望单表可以存储尽可能多的数据,选择主键类型时Long优先于Int,无符号优先于有符号。
阿里巴巴开发手册建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时就分库分表。
在业务初期可能并不用分库分表,但是随着业务发展,当单表记录数超过一定数量时就可以考虑分库分表,而不是等到自增主键用完时再分库分表,因为即使以有符号Int主键值上限分析,单表21亿数据也太多了。
分库分表原理与实际应用请参看笔者的两篇文章:
长文多图:一文讲清楚应对单数据表海量数据的六种策略
多图详解:如何不停服分库分表
你分析的对的:因为B表的主键id是int类型的,你传递的条件是一个字符串。mysql在查询的时候回强制转换字符,将字符串转为4,如果你的字符串第一个字符不是数字的话应该是差不错来的。问题原因: 数据表中设置了主键(testers),而主键对应的值是不允许重复的。 错误提示为:你插入的记录与数据表中原有记录的主键重复了(Duplicate)。所以插入失败。 注意:检查表中属性的字段,在添加记录时是否添加了重复值。 解决方案: 把testers设置非主键,`testers` varchar(10) DEFAULT NULL COMMENT '测试人员',欢迎分享,转载请注明来源:内存溢出
评论列表(0条)