找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4067

积分

0

好友

561

主题
发表于 3 小时前 | 查看: 2| 回复: 0

每日一题卡通插画

在设计数据库表结构时,你是否也曾对选择哪种整数类型感到困惑?特别是当需要存储一个取值范围在0到255之间的小型数值时,应该选择 MySQL 的哪种整数类型才能既节省存储空间又保证数据安全呢?这个问题看似基础,却直接关系到数据库的性能与设计的合理性。

今天,我们就来详细拆解这个经典的“每日一题”:在MySQL中,以下哪种整数类型的无符号数取值范围是 0~255?

选项如下:
A、INT
B、MEDIUMINT
C、SMALLINT
D、TINYINT

答案与解析

正确答案是 D、TINYINT

下面我们来逐一分析每个选项,这不仅能帮助我们选出正确答案,更能深入理解MySQL整数类型的设计。

1. TINYINT

TINYINT是MySQL中最小的整数类型。

  • 有符号(SIGNED):取值范围是 -128 到 127。
  • 无符号(UNSIGNED):取值范围是 0 到 255。
  • 存储空间:占用1个字节(8位)。

因此,题目中描述的“无符号数取值范围是 0~255”正是TINYINT UNSIGNED的特征。 它非常适合存储状态码、性别标识(0/1)、小的计数等数据。

2. SMALLINT

SMALLINT比TINYINT大。

  • 有符号(SIGNED):取值范围是 -32,768 到 32,767。
  • 无符号(UNSIGNED):取值范围是 0 到 65,535。
  • 存储空间:占用2个字节。

3. MEDIUMINT

MEDIUMINT的中等大小整数。

  • 有符号(SIGNED):取值范围是 -8,388,608 到 8,388,607。
  • 无符号(UNSIGNED):取值范围是 0 到 16,777,215。
  • 存储空间:占用3个字节。

4. INT

INT是我们最常使用的整数类型。

  • 有符号(SIGNED):取值范围是 -2,147,483,648 到 2,147,483,647。
  • 无符号(UNSIGNED):取值范围是 0 到 4,294,967,295。
  • 存储空间:占用4个字节。

从以上对比可以清晰看出,只有TINYINT UNSIGNED的取值上限为255,完美匹配题目条件。

实际应用与思考

了解每种类型的取值范围后,我们在建表时就应该更有目的性地进行选择。例如,为一个“用户状态”字段设计数据类型:

  • 如果状态只有0(禁用)、1(正常)、2(锁定)三种,那么使用TINYINT就足够了。
  • 如果明确状态值不会为负数,则应该加上UNSIGNED关键字,将其定义为TINYINT UNSIGNED,这样不仅明确了业务含义,还能存储到255(如果需要的话),充分利用了这1个字节的存储空间。

遵循“最小够用”原则选择合适的整数类型,对于减少磁盘空间占用、提升内存计算效率以及优化索引性能都大有裨益。希望这个简单的题目解析,能帮助你更扎实地掌握MySQL的基础知识。如果你想了解更多关于数据库设计或其他后端技术的深度讨论,欢迎来 云栈社区 与我们交流。




上一篇:Oracle数据库超时排查:从序列NOCACHE到row cache lock的百万生产库实战分析
下一篇:被嫌弃的“万能插头”:一位月薪42K资深开发者的年终困境
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-18 11:53 , Processed in 0.489928 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表