• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 关于MySQL的整型数据的内存溢出问题的应对方法

关于MySQL的整型数据的内存溢出问题的应对方法

作者:吴炳锡 字体:[增加 减小] 来源:互联网 时间:2017-05-11

吴炳锡通过本文主要向大家介绍了mysql长整型,mysql 短整型,mysql 整型,mysql 整型转字符串,mysql 整型类型等相关知识,希望本文的分享对您有所帮助

今天接到一个朋友电话说是觉的数据库被别人更改了,出现数据不对的问题 。经过很久的排查是数据类型溢出了(发生问题的版本是MySQL 5.1)。后来通过给朋友那边把MySQL 5.1升级到MySQL 5.5去解决这个问题。 这也让我有兴趣去了解一下MySQL不同版本数据类型溢出的处理机制。

先看一下MySQL支持的整型数及大小,存储空间:

201559103624773.jpg (576×316)

另外请记着mysql的数据处理会转成bigint处理,所以这里就用bigint几个测试:

SELECTCAST(0ASUNSIGNED)-1;
 
SELECT9223372036854775807+1;

</div>

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)

</div>

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)'

</div>

所在处理这类数据是一定要小心溢出(如早期有做弊冲Q币就是利用这个方法处理)

这个问题有可能会出现积分消息,积分相加, 或是一些钱相关的业务中出现, 主库5.1 ,从库MySQL 5.5情况也会出现不同步的问题。
建议:这类业务系统尽可能的升级到MySQL 5.5后版本 

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于MySQL的整型数据的内存溢出问题的应对方法
  • MySQL整型数据溢出的解决方法

相关文章

  • 2017-05-11mysql锁定单个表的方法
  • 2018-12-05如何用MySQLAdministrator备份mysql数据库
  • 2018-12-05php将图片储存mysql中的实例详解
  • 2018-12-05phpMyAdmin 的介绍
  • 2018-12-05MSSQL 事务说明
  • 2017-05-11MySQL全局共享内存介绍
  • 2018-12-05将Access数据库移植到SQL Server
  • 2018-12-05MySQL 存储过程的基本用法介绍
  • 2018-12-05删除重复的记录,并保存第一条记录或保存最后一条记录
  • 2017-05-11MySQL优化配置文件my.ini(discuz论坛)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 关于mysql5.7.17.msi的安装图文教程分享
    • MySQL Order By索引优化方法
    • MYSQL使用inner join 进行 查询/删除/修改示例
    • SQL Server 7.0 入门(二)
    • mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
    • 图数据库实践系列 (一)--Neo4J简介与安装
    • Windows Server 2003 下配置 MySQL 集群(Cluster)教程
    • mysql binlog二进制日志详解
    • sql格式化工具集合
    • linux忘记mysql密码处理方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有