首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 整數類型範圍與儲存大小完整指南

     編輯:MySQL 綜合教學

MySQL 整數類型範圍與儲存大小完整指南

在 MySQL 資料庫設計中,選擇適當的整數類型對於優化儲存空間和查詢效能至關重要。MySQL 提供了多種整數類型,每種類型都有其特定的範圍和儲存需求。本文將詳細介紹各種整數類型的特性,幫助您在設計資料表時做出最佳選擇。

主要整數類型對照表

類型儲存大小有號範圍無號範圍
TINYINT1 位元組-128 到 1270 到 255
SMALLINT2 位元組-32,768 到 32,7670 到 65,535
MEDIUMINT3 位元組-8,388,608 到 8,388,6070 到 16,777,215
INT / INTEGER4 位元組-2,147,483,648 到 2,147,483,6470 到 4,294,967,295
BIGINT8 位元組-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070 到 18,446,744,073,709,551,615

類型詳細說明

TINYINT

最小的整數類型,僅佔用 1 位元組。適用於儲存狀態碼、布林值(0/1)、年齡等小範圍數值。有號範圍為 -128 到 127,無號範圍為 0 到 255。

SMALLINT

佔用 2 位元組。有號範圍為 -32,768 到 32,767,無號範圍為 0 到 65,535。常用於儲存較小範圍的計數器、年份等。

MEDIUMINT

佔用 3 位元組,是 MySQL 特有的類型。有號範圍約 ±838 萬,無號範圍約 1,677 萬。介於 SMALLINT 和 INT 之間,適合中等範圍數值。

INT / INTEGER

最常用的整數類型,佔用 4 位元組。有號範圍約 ±21 億,無號範圍約 42 億。適用於大多數業務場景的 ID、計數器、數量等欄位。

BIGINT

最大的整數類型,佔用 8 位元組。有號範圍極大(約 ±922 兆兆),無號範圍約 1,844 兆兆。適用於儲存極大數值,如大型系統的自增主鍵、時間戳微秒值等。

最佳實踐建議

  • 選擇原則:在滿足業務需求的前提下,優先選擇儲存空間最小的類型,以減少磁碟 I/O 和記憶體佔用。
  • 使用 UNSIGNED:當確定欄位不會儲存負數時,添加 UNSIGNED 屬性可將正數上限提高一倍。
  • 避免過度設計:不要為了「以防萬一」而盡量使用 BIGINT,這會浪費儲存空間並降低效能。
  • 顯示寬度:INT(11) 中的數字僅影響顯示寬度,不影響儲存範圍和計算。

常見錯誤提醒

原文中提到的「smallint unsigned 的範圍是 –2^15 到 2^15 – 1」有誤。SMALLINT UNSIGNED 的正確範圍應為 0 到 65,535(2^16 - 1)。有號 SMALLINT 才是 -32,768 到 32,767。請務必以官方文件為準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved