首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中bigint存数字

基础概念

BIGINT 是 MySQL 中的一种数据类型,用于存储大整数。它的取值范围是 -9223372036854775808 到 9223372036854775807(有符号),或者 0 到 18446744073709551615(无符号)。BIGINT 占用 8 个字节,适用于需要存储大整数的场景。

相关优势

  1. 大范围存储BIGINT 能够存储非常大的整数,适用于需要处理大量数据的场景。
  2. 精度高BIGINT 提供了高精度的整数存储,避免了浮点数可能带来的精度问题。
  3. 性能稳定BIGINT 的存储和检索性能相对稳定,适用于高性能要求的系统。

类型

BIGINT 有两种类型:

  1. 有符号 BIGINT:可以存储正数、负数和零。
  2. 无符号 BIGINT:只能存储正数和零,但取值范围更大。

应用场景

  1. ID 存储:在数据库设计中,经常使用 BIGINT 来存储自增的 ID,特别是当数据量非常大时。
  2. 时间戳BIGINT 可以用来存储时间戳,表示从某个固定时间点(如 Unix 时间戳)到当前时间的毫秒数。
  3. 大数计算:在进行大数计算时,BIGINT 可以提供足够的精度。

遇到的问题及解决方法

问题:为什么使用 BIGINT 存储数字时,查询速度变慢?

原因

  1. 数据量大:当表中的数据量非常大时,查询速度可能会受到影响。
  2. 索引不足:如果没有为 BIGINT 列创建合适的索引,查询速度会变慢。
  3. 硬件资源限制:服务器的硬件资源(如 CPU、内存)不足,也会影响查询速度。

解决方法

  1. 优化查询语句:尽量减少查询的数据量,使用合适的查询条件。
  2. 创建索引:为 BIGINT 列创建合适的索引,提高查询速度。
  3. 升级硬件资源:如果硬件资源不足,可以考虑升级服务器的 CPU、内存等硬件资源。

示例代码

代码语言:txt
复制
-- 创建表并使用 BIGINT 存储数字
CREATE TABLE example_table (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    number BIGINT NOT NULL
);

-- 插入数据
INSERT INTO example_table (number) VALUES (123456789012345678);

-- 查询数据
SELECT * FROM example_table WHERE number = 123456789012345678;

参考链接

MySQL 官方文档 - BIGINT 数据类型

通过以上信息,希望你能更好地理解 BIGINT 数据类型及其应用场景,并解决相关问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysqlbigint、int、mediumint、smallint 和 tinyint的取值范围

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint、int、mediumint、smallint 和 tinyint...的语法介绍,如下: 1、bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是...MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。...在MySQL3.23,这是一个真正的浮点值。在更早的MySQL版本,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。...MySQL各数据类型的取值范围 TINYINT -128 - 127 TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767

14K31
  • mysqlint、bigint、smallint 和 tinyint的区别和存储的范围

    部门中有个字段存储的是十进制数字 , 但是表示的意思是转成二进制后 ,每一个位代表不同功能的开关状态 当超过32个功能开关的时候 , 就需要将int类型转换成bigint类型 , 原因就是int只能存储...4个字节也就是2的32次方的整型值 , 装不下了, 下面就是具体的的范围 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807...) 的整型数据(所有数字)。...int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。...注释 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint

    1.4K10

    MySQL 时间类型 datetime、bigint、timestamp,选哪个?

    数据库可以用datetime、bigint、timestamp来表示时间,那么选择什么类型来存储时间比较合适呢?...time_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `time_long` bigint...> datetime > timestamp sql分组速率测试 使用bigint 进行分组会每条数据进行一个分组,如果将bigint做一个转化在去分组就没有比较的意义了,转化也是需要时间的 通过datetime...类型排序 select * from users order by time_long 耗时:0.775s 结论 在InnoDB存储引擎下,通过时间排序,性能bigint > timestamp >...datetime 小结 如果需要对时间字段进行操作(如通过时间范围查找或者排序等),推荐使用bigint,如果时间字段不需要进行任何操作,推荐使用timestamp,使用4个字节保存比较节省空间,但是只能记录到

    4K30

    mysql存储手机号为什么不用bigint?

    因此,为什么不使用bigint存储手机号呢? 手机号一般是要加索引的吧。。bigint你用了like索引就失效了 1.首先,手机号的本质是字符串而不是数字,只是恰巧长得像数字而已。...4.在32位的某些应用bigint太大,会溢出,要进行各种转换,很麻烦。 5.手机号可能有-(座机),用int不了。...; 更高的操作效率(待验证); 支持更多的操作,比如between and操作; VARCHAR的优势: 灵活;设计时候可以指定最大长度,存储时,多少占用多少; CHAR的优势: 效率比varchar...; 省略手机号开头的1(国内还没有看到1以外的数字开头的手机号,国外情况未知),这样就只剩下10位了,依然不够,第二位从0到9分库分表,还剩下9位,这对于int来说,能够存储了; 我一直认为对于数字的处理...,交给数字类型比较好,所有才会有这样的想法,int对比varchar总该有性能提升吧;当然这样做,也有局限性: 实现起来变麻烦了,不过对于13亿数据量来说本身就应该分表了,一张表200w数据后就可能操作起来显著变慢

    3.4K20

    mysql字符转数字,MYSQL字符数字转换为数字「建议收藏」

    1、将字符的数字转成数字,比如’0’转成0可以直接用加法来实现 例如:将user表的uid 进行排序,可uid的定义为varchar,可以这样解决 select * from user order by...(uid+0) 2、在进行ifnull处理时,比如 ifnull(a/b,’0′) 这样就会导致 a/b成了字符串,因此需要把’0’改成0,即可解决此困扰 3、比较数字和varchar时,比如a=11...,b=”11ddddd”; 则 select 11=”11ddddd”相等 若绝对比较可以这样: select binary 11 =binary “11ddddd” 另外: 今天看到Mysql的 Cast...和Convert函数,也能实现‘字符数字转换为数字’ 两者具体的语法如下: Cast(value as type); Convert(value ,type); type不是都可以滴,可以转换的type

    1.9K20

    理解 MySQL 数字类型

    MySQL 数据类型常用的就三大类: 数字类型/numeric types 日期和时间/date and time types 字符类型/string (character and byte) types...存储字符串时指定的类型 VARCHAR(50) 可接收一个数字作为长度,其实除了字符串类型,数字类型也是可指定该参数的,比如 INT(10),BIGINT(20)。...展示宽度这个参数具有迷惑性,它不像 CHAR(M) 中有实际意义表示能够存储的字符串长度,在数字类型,它指数字展示时需要的宽度,是 MySQL 格式化时使用的。...但 MySQL ,根据 p 取值的不同,底层实际将其处理成别的类型。...进行数字计算时如果有溢出,也会抛错,比如对于 BIGINT 其最大值为 9223372036854775807,因为 MySQL 默认对数字类型是有符号类型,如下操作会抛错, mysql> SELECT

    2.1K20

    localStorage怎么对象?

    function person(name, age){ this.name=name; this.age=age;} 在js代码,我们新建一个person对象: var p=new person(‘yubo...sessionStorage用于本地存储一个会话(session)的数据,这些数据只有在同一个会话的页面才能访问并且当会话结束后数据也随之销毁。...此外,在IE6及以上版本还可以使用user Data Behavior、在Firefox下可以使用global Storage、在有Flash插件的环境可以使用Flash Local Storage...针对以上情况,HTML5给出了更加理想的解决方案:假如你需要存储复杂的数据则可以使用Web Database,可以像客户端程序一样使用SQL(不过Web Database标准当前正陷于僵局之中,而且目前已经实现的浏览器很有限...而Web Storage的数据则仅仅是存在本地,不会与服务器发生任何交互。 web storage接口 更多丰富易用的接口:Web Storage提供了一套更为丰富的接口,使得数据操作更为简便。

    1.4K20

    Nginx+lua+mysql实时日志

    lua;;"; lua_shared_dict logs 10m; #初始化worker进程,在这个进程递归调用put_log_into_mysql函数,达到一种类似于crontab的功能 init_worker_by_lua_block...从共享内存读取出10s的日志,写入mysql local key = "logs" local vals = "" local...实时插入日志的问题。...在任务,每隔一段时间取出nginx内存共享区的log数据,将数据合并,存入mysql,同时再一个相同的延时任务,递归调用。这样就与crontab命令相似。...当定时器到期,定时器的 Lua 代码是在一个“轻线程”运行的,它与创造它的原始请求是完全分离的,因此不存在大量线程同时运行的情况。 在日志生成阶段,将数据封装并存入nginx的内存共享区。

    2.4K70

    一篇文章看懂mysqlvarchar能多少汉字、数字,以及varchar(100)和varchar(10)的区别

    2、varchar能多少汉字、数字? 3、varchar的最大长度是多少呢? 4、字符、字节、位,之间的关系? 5、mysql字段类型存储需要多少字节? 接下来请仔细看,整理不易啊。...但是,它确实会对查询产生影响,因为当MySql创建临时表(SORT,ORDER等)时,VARCHAR会转换为CHAR,转换后的CHAR的长度就是varchar的长度,在内存的空间就变大了,在排序、统计时候需要扫描的就越多...第二、在内存的操作方式,varchar也是按照最长的方式在内存中进行操作的。比如说要进行排序的时候,varcahr(100)是按照100这个长度来进行的。 2、varchar能多少汉字、数字?...mysql的vachar字段的类型虽然最大长度是65535,但是并不是能这么多数据,最大可以到65533,其中需要1到2个字节来存储数据长度(如果列声明的长度超过255,则使用两个字节来存储长度,否则...数字类型 列类型 需要的存储量 TINYINT 1 字节 SMALLINT 2 个字节 MEDIUMINT 3 个字节 INT 4 个字节 INTEGER 4 个字节 BIGINT 8 个字节 FLOAT

    8.2K52

    MySQL怎么文本不乱码?

    varchar(20) character set utf8mb4 collate utf8mb4_unicode_ci not null default ‘’ 好了,有个字符集为UTF8MB4的表想存储各类不同字符集的文本...默认字符集,若未设定,则和 character_set_server 的设定一样;database的 数据表/stored procedure/stored function 也可以自行设定字符集,若未指定...,则和 character_set_database 的设置一样;数据表的字符类型列,也可以单独设定字符集,若未设定,则和该表指定的字符集一样; character_set_client,客户端显示读取结果的字符集...附1,关于编码简介 ASCII码,占7bit,由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成; latin1,占1byte,...开发这个接口时,发现钉钉的个别表情符是由2个4字节编码组成的,也就是说一个emoji表情符,其实是需要8个字节的。

    1.7K20

    MySQL 怎么文本不乱码?

    导读 MySQL里怎么存储那些看起来会乱码的字符?...默认字符集,若未设定,则和 character_set_server 的设定一样;database的 数据表/stored procedure/stored function 也可以自行设定字符集,若未指定...,则和 character_set_database 的设置一样;数据表的字符类型列,也可以单独设定字符集,若未设定,则和该表指定的字符集一样; character_set_client,客户端显示读取结果的字符集...附1,关于编码简介 ASCII码,占7bit,由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成; latin1,占1byte,...开发这个接口时,发现钉钉的个别表情符是由2个4字节编码组成的,也就是说一个emoji表情符,其实是需要8个字节的。

    1.9K10

    mysql的数据类型int、bigint、smallint 和 tinyint取值范围

    使用整数数据的精确数字数据类型。 bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。...int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。...注释 在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。...在 SQL Server ,int 数据类型是主要的整数数据类型。 在数据类型优先次序表bigint 位于 smallmoney 和 int 之间。...只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint

    4.3K31

    CDB for MySQL 8.0列引擎CSTORE介绍

    OLTP业务虽然每次访问的数据量不大,但是经常访问一个表的全部字段或大多数字段。因此,传统上,几乎所有的数据库管理系统都采用了按行存储的形式,将数据分成定长的页面,在外存和内存中保存数据。...CDB for MySQL 8.0是腾讯TEG云架构平台部推出的新一代MySQL产品。...CSTORE作为一个列引擎,架构上有一些明显区别于INNODB的特点。首先,CSTORE的所有数据都按列组织,同一列的数据每固定行(称之为DataGroup)组织为一个逻辑页面。...CSTORE的查询引擎吸收了MySQL查询引擎的优点,又针对列的特点做了优化。因此,MySQL原生支持的大部分查询都可以不修改而继续运行,并且带来性能的提升。...「 总结 」 至此,对列引擎CSTORE,我们都有大概的了解。 未来,我们会持续对列引擎CSTORE进行完善并尽快正式发布给大家使用,敬请期待~ ?

    2.2K72
    领券