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

mysqlint默认长度11

MySQL中的INT类型默认长度为11个字符,这个长度包括了正负号(如果启用了符号)以及数字本身。然而,实际上INT类型的存储大小是固定的,为4个字节(32位),其取值范围是从-2,147,483,648到2,147,483,647(有符号),或者0到4,294,967,295(无符号)。这里的“长度”更多的是指在某些情况下(如显示、排序等)MySQL如何表示这个整数的字符数量。

优势

  • 存储效率INT类型占用的存储空间相对较小,适合存储大量整数数据。
  • 查询性能:整数类型的数据在数据库中查询速度较快,因为它们可以直接进行数值比较和运算。

类型

MySQL中的整数类型包括:

  • TINYINT:1字节,取值范围-128到127(有符号)或0到255(无符号)。
  • SMALLINT:2字节,取值范围-32,768到32,767(有符号)或0到65,535(无符号)。
  • MEDIUMINT:3字节,取值范围-8,388,608到8,388,607(有符号)或0到16,777,215(无符号)。
  • INT:4字节,如上所述。
  • BIGINT:8字节,取值范围非常大,适合存储大整数。

应用场景

  • 用户ID:通常用于存储用户标识符,如自增主键。
  • 计数器:用于统计数量,如文章阅读次数、点赞数等。
  • 日期时间:虽然MySQL有专门的日期时间类型,但有时也可以使用整数类型来存储日期时间的某种表示形式(如Unix时间戳)。

遇到的问题及解决方法

问题1:为什么设置了INT(5)但实际存储的数字长度超过了5位?

实际上,INT(5)中的“5”并不限制整数的存储大小或值的范围,它只影响在某些情况下的显示宽度。如果你插入了一个超过5位的数字,MySQL仍然会完整地存储它,不会截断。

问题2:如何设置自增属性?

如果你想让某个整数字段自增,可以使用AUTO_INCREMENT属性。例如:

代码语言:txt
复制
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255)
);

在这个例子中,id字段会自动递增,并且每次插入新记录时都会得到一个唯一的值。

问题3:如何选择合适的整数类型?

选择合适的整数类型取决于你的具体需求。如果你需要存储的整数范围较小,可以选择较小的类型(如TINYINTSMALLINT)以节省存储空间。如果需要存储大整数,则应选择BIGINT。同时,还要考虑查询性能和数据的一致性。

参考链接

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

相关·内容

mysql前缀索引 默认长度_如何确定前缀索引的长度?

nick_name`,`account`,`city`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’Test’; 复制代码 原因 在MySQL5.6里默认...在MySQL5.7里默认 innodb_large_prefix=1 解除了767bytes长度限制,但是单列索引长度最大还是不能超过3072bytes。...所以我们经常会见到把字段设置成varchar(255)长度的,在utf8字符集下这个是最大不超过767bytes的长度了,但是并不是一定要设置成varchar(255),还是要根据业务设置每个字段的长度...解决办法 可以直接去改字段的长度,或者说,把索引的字段取消掉一些,但是这样改对表本身是不友好的。 通过限定字段的前n个字符为索引,可以通过衡量实际的业务中数据中的长度来取具体的值。...,这个就是我们说的前缀索引 修改单个索引的最大长度 修改索引限制长度需要在my.ini配置文件中添加以下内容,并重启: #修改单列索引字节长度为767的限制,单列索引的长度变为3072 innodb_large_prefix

4.2K20
  • Memcached对于Key和Value的长度默认限制

    结论 Memcached默认对Key和Value长度做如下限制: Key字符串的长度不能超过255个字符; Value字符串的长度不能超过1024 * 1024个字符, 即存储数据不能超过1M; 推荐使用默认配置..., 也可以通过直接修改memcached.h源码来加大长度限制. // memcached.h#define KEY_MAX_LENGTH 1000#define MAX_ITEM_SIZE  (1024...默认Memcached开启压缩功能. 此处为了测试, 需要暂时先关闭压缩功能....var_dump($ret); $values=array();// 为什么是85呢, 因为存储$value数据需要额外存储其它元素数据, 包括key, 管理信息// 每记录需要内存数 = key长度...+ value长度 + 管理信息(64 字节 + 1~9字节的value size的字符数).// 14 + 1024 * 1024 - 85 + 1 + 64 + 7 = 1024 * 1024 +

    81120

    HashMap的默认初始长度是多少?为什么?

    这个时候看到这篇文章的小伙伴就赚了,带你彻底了解懂hashmap的默认初始长度为什么是16 1. 默认长度是多少?...HashMap的默认初始长度是16,自动拓展和手动初始化时,长度必须是2的幂,即2^n (每次扩容都是以2的整数次幂扩容 2.为什么是16呢?...位运算求HashMap函数,位运算:index=Hash数据(Key)&(length-1),进行的是二进制的与(&)运算 例如index=101111100100 1011 (Hash数据)&1111(默认长度...16的二进制)=1011,结果取决于Value的最后四位, 1111是(Length-1)默认的Length是16,Length-1是15的二进制 使用位运算,效果上和取模(index=Hash数据(Key...设HashMap的长度是9,则 index=11100011010101(Hash数据)&1000(Length-1)=0000 设HashMap的长度是10,则 index=11100011010101

    70320

    时隔37年,Windows 11更换系统默认终端!

    出品:OSC开源社区 ID:oschina2013 微软最近向 Windows 11 的 Beta 测试通道推送了新的构建版本 (Windows 11 build 22622.436)。...其中的一个变化就是更换了系统的默认终端。 微软在发布说明中写道,Windows Terminal 现在是 Windows 11 的默认终端。...默认终端是在打开命令行应用程序时默认启动的终端模拟器。 从 Windows 诞生之日起,其默认终端一直是 Windows 控制台主机 conhost.exe。...根据此前的报道,Windows Terminal 项目经理 Kayla 表示:“现在我们正在开放功能以允许将其他终端设置为默认终端,包括 Windows Terminal。”...参考阅读: https://blogs.windows.com/windows-insider/2022/07/19/announcing-windows-11-insider-preview-build

    80030

    C++11函数模板的默认模板参数

    1.函数模板默认模板参数简介 函数模板与类模板在C++98一起被引入,因种种原因,类模板可以拥有默认模板参数,而函数模板不可以。从C++11开始,这个限制被解除了,即函数模板同样可以拥有默认模板参数。...static void _printTypeName() { cout<<"T="<<typeid().name()<<endl; } }; //函数模板的默认模板参数,C++11开始支持...2.函数模板默认模板参数的特点 函数模板默认模板参数的用法虽然与类模板默认模板参数和函数默认参数的用法类似,但是有一个显著的特点,即当函数模板拥有多个默认模板参数时,其出现的顺序可以任意,不需要连续出现在模板参数的最后面...,而在C++11中,函数模板的默认模板参数出现的位置则比较灵活,可以出现在任意位置。...---- 参考文献 [1]深入理解C++11[M].2.11模板函数的默认模板参数

    2.6K20

    Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑

    文/朱季谦 某天检查一位离职同事写的代码,发现其对应表虽然设置了AUTO_INCREMENT自增,但页面新增功能生成的数据主键很诡异,长度达到了19位,且并非是从1开始递增的—— [image.png]...底层ORM框架用的是Mybatis-Plus,我寻思了一下,这看起来像是在插入数据库旧自动生成的id,导致并非默认使用MySql的自增AUTO_INCREMENT的id。...接下来,先验证Mybatis-Plus默认主键策略是如何的。 Mybatis-Plus项目在启动时,会对注解实体类进行初始化,然后缓存到系统Map中。...这里的判断是否有@TableId 注解,就是判断是否需要取默认的主键策略,至于具体是如何设置默认主键的,我们可以直接进入到initTableIdWithoutAnnotation方法当中。...[image.png] 填充的值为IdWorker.getId()返回的1468970800437465089,刚好是19位长度,这就意味着,这里产生的id值,就是我们最后要找的。

    6.8K130

    扩展entity framework core 实现默认字符串长度,decimal精度,entity自动注册和配置

    目标: 1.实现entity的自动发现和mapper设置. 2.默认字符串长度,而不是nvarchar(max). 3.decimal设置精度 实现目标1:继承RelationalModelCustomizer...那,我们增加2个小小的约定:字符串默认长度(StringDefaultLengthConvention),和decimal精度设置attribute(DecimalPrecisionAttributeConvention...ConventionSet CreateConventionSet() { var conventionSet = base.CreateConventionSet(); //默认字符串长度...//为什么要insert(0,obj),则是因为这个默认规则要最优先处理,如果后续有规则的话就直接覆盖了。...conventionSet; } } 下面是StringDefaultLengthConvention和DecimalPrecisionAttributeConvention的实现代码 //字符串默认长度

    1.3K20

    【说站】Windows 11来袭,微软改变默认应用的分类方式!

    Windows 11来袭,微软改变默认应用的分类方式!...如果忘记勾选,那么在后续使用过程中,想要将系统原来默认的 Edge 浏览器换成 Chrome、FireFox 等其他浏览器,估计就得好好研究一番了,因为 Windows 11 中的默认应用提示(见图1)...或许有人说,“直接去设置里选择一下默认浏览器就行了”,但是值得注意的是,微软已经改变了 Windows 11 中默认应用程序的分配方式。...众所周知,在 Windows 10 中,默认应用程序,主要按照应用的类型进行划分。 然而,Windows 11 中是按照文件或链接类型设置默认值。...针对业界的不满,微软发言人表示:“在 Windows 11 中,我们正在收集客户反馈,以在更精细的层面进行自定义和控制默认值,取消应用程序类别并将所有应用程序提升到默认值体验的最前沿。

    47410
    领券