关于MySQL的整型数据的内存溢出问题的应对方法
网络编程 2021-07-05 15:27www.168986.cn编程入门
这篇文章主要介绍了关于MySQL的整型数据的内存溢出问题的应对方法,作者还列出了MySQL所支持的整型数据的存储空间支持大小,需要的朋友可以参考下
今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 。经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1)。后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题。 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制。
先看一下MySQL支持的整型数及大小,存储空间:
请记着mysql的数据处理会转成bigint处理,所以这里就用bigint几个测试
SELECTCAST(0ASUNSIGNED)-1; SELECT9223372036854775807+1;
MySQL 5.1 下
mysql>SELECTCAST(0ASUNSIGNED)-1; +-------------------------+|CAST(0ASUNSIGNED)-1|+-------------------------+|18446744073709551615|+-------------------------+1ROWINSET(0.01 sec) mysql>SELECT9223372036854775807+1; +-------------------------+|9223372036854775807+1|+-------------------------+|-9223372036854775808|+-------------------------+1ROWINSET(0.01 sec)
MySQL 5.5, 5.6, 5.7下
mysql>SELECTCAST(0ASUNSIGNED)-1; ERROR 1690(22003): BIGINTUNSIGNEDVALUEISOUTOF range IN'(cast(0 as unsigned) - 1)' mysql> mysql> mysql> mysql>SELECT9223372036854775807+1; ERROR 1690(22003): BIGINTVALUEISOUTOF range IN'(9223372036854775807 + 1)'
所在处理这类数据是一定要小心溢出(如早期有做弊冲Q币就是利用这个方法处理)
这个问题有可能会出现积分消息,积分相加, 或是一些钱相关的业务中出现, 主库5.1 ,从库MySQL 5.5情况也会出现不同步的问题。
建议这类业务系统尽可能的升级到MySQL 5.5后版本
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指