关于mysql使用雪花id作为主键出现查询数据不准确问题

1.错误描述:


由于公司所开发项目使用的是雪花ID,所以最近在使用雪花ID做关联查询时出现原本查询结果是一条,但是最终查询出来的却是两条或者多条,造成项目取数据时报错。

2.错误原因


本人在网上找了许久,暂未发现明确原因。但是通过观察查询出来的数据发现,数据的主键id是相邻的!然后根据mysql官方不推荐使用雪花id作为主键的一些原因,本人大概推测。应该就是雪花id引起的查询数据出错!

3.解决办法


解决办法本人推荐2个:

1.尽量不使用雪花id作为主键


如果是刚开始建表时,尽量不使用雪花id作为主键即可避免该问题

2.查询时使用CAST(id,CHAR)函数


如果是必须使用雪花id,可以在关联查询时涉及到雪花id时使用CAST()函数将id的类型强转为CHAR类型进行查询,查询出来的结果就是正确的。但是查询速度太慢!

关于mysql使用雪花id作为主键出现查询数据不准确问题

上一篇:MongoDB如何才能优雅且合理地设计?


下一篇:Photoshop简单制作漂亮的冰封字效果