`
eyesmore
  • 浏览: 376587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql的BigInt(20),Int(20)以及Bigint(32)有区别吗?

阅读更多

原文: http://stackoverflow.com/questions/3135804/types-in-mysql-bigint20-vs-int20-etcc

http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html

 

Types in MySQL: BigInt(20) vs Int(20) etcc

 

See http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html

INT is a four-byte signed integer. BIGINT is an eight-byte signed integer.

The 20 in INT(20) and BIGINT(20) means almost nothing. It's a hint for display width, it has nothing to do with storage. Practically, it affects only the ZEROFILL option:

 

CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;

+----------------------+
| bar                  |
+----------------------+
| 00000000000000001234 |
+----------------------+
 

 

The number in parentheses in a type declaration is display width , which is unrelated to the range of values that can be stored in a data type. Just because you can declare Int(20) does not mean you can store values up to 10^20 in it:

[...] This optional display width may be used by applications to display integer values having a width less than the width specified for the column by left-padding them with spaces. ...

The display width does not constrain the range of values that can be stored in the column, nor the number of digits that are displayed for values having a width exceeding that specified for the column. For example, a column specified as SMALLINT(3) has the usual SMALLINT range of -32768 to 32767, and values outside the range allowed by three characters are displayed using more than three characters.

For a list of the maximum and minimum values that can be stored in each MySQL datatype, see here .

 

Mysql的数字类型(1B,2B,3B,4B,8B都有)

一个INT,占4个字节,跟JAVA中的int一样,即使是有符号也能表达21亿 这么大的数据。 所以平时绝大多数情况,包括大型网站的UID,都用不了这么大的数据,好友关系表可能会超过,关系表可以考虑用BIGINT。还有就是平时时间戳需要用BIGINT。总之,不要轻易用上BIGINT,完全是浪费!

  • 大小: 6.8 KB
分享到:
评论

相关推荐

    对比MySQL中int、char以及varchar的性能

    首先,从无索引的全表扫描角度来看,测试结果显示int和bigint(即i8)在查询性能上比char和varchar略快约12%。这主要是因为MySQL对整数类型有更优化的处理机制,能够更快地处理数值计算。然而,无论是char(c8)、...

    mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    MySQL中的整数类型主要包括四种:`tinyint`、`smallint`、`int`和`bigint`,它们各自有不同的取值范围和存储需求,适用于不同的应用场景。 1. `tinyint`: `tinyint`是一种非常小的整数类型,主要用于存储只需要1...

    SQLServer中bigint转int带符号时报错问题解决方法

    在MySQL中,`int`、`bigint`、`smallint`和`tinyint`等整数类型各有不同的存储范围和应用场景,需要根据实际需求来选择合适的数据类型。JavaScript中的安全整数限制也可以通过新的BigInt类型来扩展,以支持更大范围...

    MySQL数据库中把int转化varchar引发的慢查询

    此外,了解MySQL的优化工具也很重要,如`EXPLAIN`用于分析查询计划,`ANALYZE TABLE`用于更新统计信息,以及`SHOW CREATE TABLE`来查看表的结构和索引。 总之,避免在不需要的情况下将`int`转换为`varchar`,特别是...

    关于MySQL 时间类型 datetime、bigint、timestamp,你用哪个?

    ### MySQL时间类型详解:datetime、bigint、timestamp 在MySQL中,根据不同的应用场景和需求,可以选择多种方式来存储日期和时间信息。本篇文章将详细介绍三种常用的时间类型:`datetime`、`bigint` 和 `timestamp`...

    mysql int和tinyint的区别.docx

    ### MySQL INT 和 TINYINT 的区别 #### 一、INT 和 TINYINT 概述 在MySQL中,`INT` 和 `TINYINT` 是两种常见的整数类型,它们主要用于存储整数值。这两种类型的差异主要体现在存储空间的需求、能够表示的数值范围...

    MySql数据类型,非常详细!

    MySQL是一种广泛使用的开源关系型数据库管理系统,其数据类型是数据库设计的基础,理解并熟练掌握MySQL的数据类型对于数据库的高效管理至关重要。以下是对MySQL数据类型的详细阐述。 1. 整数类型: - TINYINT:...

    JDBC数据类型与数据库字段对应表——mysql篇

    JDBC数据类型与数据库字段对应表——mysql篇 数值型 整型 JDBC tinyint java.lang.Integer smallint mediumint java.lang.Long int bigint java.math.BigInteger

    mysql int(3)与int(11)的区别详解

    MySQL中的`INT`数据类型用于存储整数值,如`INT(3)`和`INT(11)`。然而,这些数字括号内的数字并不是用来限制实际存储的整数值的位数或长度,而是用来指定显示宽度的。这在某些情况下,如格式化输出或者配合`ZEROFILL...

    oracle和MySQL区别手册

    MySQL还提供了多种整型,例如`INT`、`BIGINT`、`SMALLINT`以及`TINYINT`等,它们分别有不同的取值范围和存储空间需求。 ##### 字符串型 - **Oracle**: 使用`VARCHAR2(n)`来定义可变长度的字符串类型,其中`n`代表...

    mysql面试题20道精选

    包括整数(如TINYINT、INT、BIGINT)、浮点数(如FLOAT、DOUBLE)、字符串(如VARCHAR、TEXT)、日期和时间(如DATE、TIME、DATETIME、TIMESTAMP)以及布尔类型(BOOLEAN)等。 14. **如何显示MySQL中的所有表?**...

    mysql面试题汇总一共100+道经典mysql面试题

    `INT`用于存储32位整数,`BIGINT`用于存储64位整数,适用于大数据范围。 **2. 数据库设计** - 什么是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)?这些范式是如何帮助消除数据冗余和提高数据完整性的? **...

    中国5级省市县镇村MySQL完整数据-SQL文件

    中国五级省市县镇村的MySQL完整数据,已经做成SQL文件,带建表语句 /* Navicat MySQL Data Transfer Target Server Type : MYSQL Target Server Version : 50612 File Encoding : 65001 Date: 2017-03-07 16:05:...

    简单了解mysql存储字段类型查询效率

    - 整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,它们分别使用8、16、24、32和64位存储。 - TINYINT有UNSIGNED选项,无符号整数的取值范围扩大,例如TINYINT UNSIGNED范围为0到255,而SIGNED范围为-128...

    深入浅出MySQL数据库开发、优化与管理维护.doc

    例如,整数类型可以分为 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 等,浮点数类型可以分为 FLOAT、DOUBLE、DECIMAL 等。 AUTO_INCREMENT AUTO_INCREMENT 是 MySQL 中的一种数据类型,它可以自动为列赋予唯一的...

    mysql雪花算法生成唯一整型ID主键的实现方法

    MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...

    mysql基础知识和mysql优化整理

    2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...

    2021 最新MySQL互联网大厂面试宝典(附500题)-185页.pdf

    7. MySQL数据类型:包括整数类型(如TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT),实数类型(如FLOAT、DOUBLE、DECIMAL),以及字符串类型(如VARCHAR、CHAR、TEXT、BLOB)。这些类型各有特点和用途,例如整数类型...

Global site tag (gtag.js) - Google Analytics