广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数值类型在binlog中需要注意的细节有哪些
  • 737
分享到

MySQL数值类型在binlog中需要注意的细节有哪些

2024-04-02 19:04:59 737人浏览 八月长安
摘要

Mysql数值类型在binlog中需要注意的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。    

Mysql数值类型在binlog中需要注意的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

    mysql里的数值类型分得很细,光整型数据就有多种数据类型。tinyint,smallint,mediumint,int(integer),还有范围最大的bigint,它们对应的数值范围也大大不同,大体来说就是下面的数值范围,从有符号数和无符号数来区别对待。

类型名称有符号数(signed)无符号数(Unsigned)
tinyint -129~127 0~255
smallint -32768~32767 0~65535
mediumint -8388608~8388607 0~16777215
int(integer) -2147483648~2147483647 0~4294967295
bigint

-9223372036854775808~

9223372036854775807

0~18446744073709551615

   这一点上oracle做得很大气,直接一个number类型,精度也包了,两者在这个地方风格截然不同。

   对于Mysql的数据类型,我们来说说bigint,如果按照无符号数,最大的值为18446744073709551615,这是一个相当大的数字,如果从有符号数据的角度来看就是-1,那么问题来了,在MySQL的binlog里面是否会区分signed还是unsigned呢,如果不区分,这类问题该怎么应对。

  我做了如下的测试,使用conv来做进制转换。

> select conv(-1,10,2);
+------------------------------------------------------------------+
| conv(-1,10,2)                                                    |
+------------------------------------------------------------------+
| 1111111111111111111111111111111111111111111111111111111111111111 |
+------------------------------------------------------------------+

> select conv(18446744073709551615,10,2);
+------------------------------------------------------------------+
| conv(18446744073709551615,10,2)                                  |
+------------------------------------------------------------------+
| 1111111111111111111111111111111111111111111111111111111111111111 |
+------------------------------------------------------------------+从机制转换的结果来看,两者是没有差别的,如果是实际的场景中,这可是天壤之别。

我们换一个角度来转换一下。

> select conv(repeat(1,64),2,-10);
+--------------------------+
| conv(repeat(1,64),2,-10) |
+--------------------------+
| -1                       |
+--------------------------+

> select conv(repeat(1,64),2,10);
+-------------------------+
| conv(repeat(1,64),2,10) |
+-------------------------+
| 18446744073709551615    |
+-------------------------+这么看来,让人有些担忧,如果达到这种数据的临界点,会发生什么意料之外的结果呢。

我们来创建一个表,指定两个字段,一个为有符号类型,一个为无符号类型,然后对应的数字,从binlog来看看解析出来的结果。

create table t1 (id int unsigned not null auto_increment primary key, col1 bigint unsigned, col2 bigint signed) engine=innodb;接着我们切一下日志,查看一下master对的状态,得到日志的偏移量和binlog名字。

> flush logs; show master status;
+---------------+----------+
| File          | Position |
+---------------+----------+
| binlog.000031 |      107 |
+---------------+----------+这个时候我们插入两列值,一个无符号,一个有符号。

insert into t1 (col1, col2) values (18446744073709551615, -1);然后使用flush logs再次切换日志。

查看数据的情况,可以从输出看出两者是有明显的差别的。

> select * from t1;
+----+----------------------+------+
| id | col1                 | col2 |
+----+----------------------+------+
|  1 | 18446744073709551615 |   -1 |
+----+----------------------+------+我们从binlog来解析一下。

mysqlbinlog -vv binlog.000031

得到的部分日志如下:

### INSERT INTO test.t1
### SET
###   @1=1
###   @2=-1 (18446744073709551615)
###   @3=-1 (18446744073709551615)
# at 268
#170519 18:54:47 server id 13386  end_log_pos 295       Xid = 76
COMMIT;这样看来对于binlog中,有符号数和无符号数都会按照无符号数来转换,当然直接看数据类型是没有标识有符号和无符号的差别的。所以如果是单纯要解析binlog处理数据就需要考虑到这个地方的差别,对此一种思路是查看infORMation_schema中的列信息来做出更加明确的判断。

看完上述内容,你们掌握MySQL数值类型在binlog中需要注意的细节有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数值类型在binlog中需要注意的细节有哪些

本文链接: https://www.lsjlt.com/news/66221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数值类型在binlog中需要注意的细节有哪些
    MySQL数值类型在binlog中需要注意的细节有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。     ...
    99+
    2022-10-19
  • Javascript中需要注意的细节有哪些
    这篇文章主要介绍了Javascript中需要注意的细节有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.使用 === 代替 ==Jav...
    99+
    2022-10-19
  • Web测试中需要注意的细节有哪些
    这篇文章主要介绍了Web测试中需要注意的细节有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Web测试中需要注意的细节有哪些文章都会有所收获,下面我们一起来看看吧。页面显示部分(1)首先关注页面是否能显示完...
    99+
    2023-06-05
  • 网站优化需要注意的细节有哪些
    这篇文章主要介绍“网站优化需要注意的细节有哪些”,在日常操作中,相信很多人在网站优化需要注意的细节有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网站优化需要注意的细节有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • 新网站建设前需要注意的细节有哪些
    本篇内容介绍了“新网站建设前需要注意的细节有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!    ...
    99+
    2023-06-10
  • 微信JSAPI支付操作需要注意的细节有哪些
    这篇文章主要为大家展示了“微信JSAPI支付操作需要注意的细节有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信JSAPI支付操作需要注意的细节有哪些”这...
    99+
    2022-10-19
  • 构建移动网站时有哪些需要注意的细节要点
    这篇文章主要讲解了“构建移动网站时有哪些需要注意的细节要点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“构建移动网站时有哪些需要注意的细节要点”吧!  近年来,移动互联网发展极为迅速,根据有...
    99+
    2023-06-10
  • Mysql中varchar类型一些需要注意的地方
    varchar的存储规则 0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)。 5.0版本以上,varchar(20),指的是20字符,无论...
    99+
    2022-05-27
    Mysql varchar类型 Mysql varchar类型注意的地方
  • Java框架在Windows系统上的应用,有哪些需要注意的细节?
    Java作为一种广泛应用的编程语言,被越来越多的开发者使用。而Java框架作为Java开发中的重要组成部分,也是开发者们必备的技能之一。在Windows系统上使用Java框架,我们需要注意哪些细节呢?本文将对此进行详细介绍。 JDK的安装...
    99+
    2023-09-12
    windows 框架 leetcode
  • ASP 存储 numy 数据类型?有哪些需要注意的问题吗?
    在开发 web 应用程序时,我们经常需要存储和处理大量的数值数据。NumPy 是一个广泛使用的 Python 库,它提供了高效的数组操作和数学函数,使我们可以轻松地处理数值数据。在 ASP 中,我们可以使用 NumPy 来存储和处理数值数...
    99+
    2023-08-03
    存储 numy 数据类型
  • PHP开发技术中的数据类型在Linux下有哪些需要注意的问题?
    PHP是一种开源的服务器端编程语言,它被广泛应用于Web开发领域。在PHP开发中,数据类型是非常重要的一个概念。不同的数据类型在不同的操作系统下可能会有不同的表现,因此在Linux下开发PHP时需要特别注意一些数据类型的问题。 整型数据...
    99+
    2023-09-20
    开发技术 数据类型 linux
  • 在css中有哪些规则需要注意的
    小编给大家分享一下在css中有哪些规则需要注意的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在css中,属性与其属性之间需要使用英文的":"...
    99+
    2023-06-14
  • Java与NumPy的数据类型:在大数据处理中需要注意哪些问题?
    随着大数据时代的到来,数据处理成为了许多企业必须面对的挑战。在这个过程中,数据类型的选择和处理变得尤为重要。Java和NumPy是两个常用的数据处理工具,它们在数据类型上有着不同的特点和优势。本文将探讨Java和NumPy在数据类型上的异...
    99+
    2023-07-08
    numy 大数据 数据类型
  • 异步编程中Java数据类型的选择有哪些需要注意的地方?
    异步编程是现代软件开发中重要的一部分。在Java中,异步编程可以使用多种方式来实现,包括线程、Future和CompletableFuture等。然而,在使用这些技术时,我们需要注意Java数据类型的选择。在本文中,我们将探讨异步编程中Ja...
    99+
    2023-09-16
    数据类型 linux 异步编程
  • 日志存储在Java程序中的数据类型选择有哪些需要注意的问题?
    在Java程序中,日志是一种非常重要的信息,可以帮助我们了解程序的运行情况、问题所在、以及性能瓶颈等。因此,合理地存储日志信息对于程序的调试和性能优化非常有帮助。在存储日志信息时,我们需要注意选择合适的数据类型,以便能够充分利用存储空间,...
    99+
    2023-07-31
    数据类型 日志 存储
  • web开发中使用组件要注意的细节点有哪些
    小编给大家分享一下web开发中使用组件要注意的细节点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!<!DOCTYPE...
    99+
    2022-10-19
  • 在MySQL中使用sleep函数时需要注意哪些事项
    在MySQL中使用sleep函数时需要注意哪些事项?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言MySQL中的系统函数sl...
    99+
    2022-10-18
  • ASP 数据类型和数组在 Linux 中的应用:您需要知道的所有细节。
    ASP (Active Server Pages) 是一种微软公司开发的服务器端脚本语言,用于动态生成 Web 页面。ASP 支持多种数据类型和数组,这些类型和数组在 Linux 系统中同样适用。本文将介绍 ASP 数据类型和数组在 Li...
    99+
    2023-06-16
    数据类型 数组 linux
  • ASP数据类型的打包方式:在Linux中有哪些值得注意的地方?
    ASP是一种流行的Web编程语言,它使用一种称为Active Server Pages(ASP)的技术来生成动态Web页面。在ASP中,数据类型是非常重要的,因为它们决定了如何存储和处理数据。当在Linux中运行ASP应用程序时,需要注意...
    99+
    2023-08-03
    数据类型 linux 打包
  • Javascript数据类型中有哪些可能会中招的细节
    今天就跟大家聊聊有关Javascript数据类型中有哪些可能会中招的细节,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 前言Javascr...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作