首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 數值型別深度指南:整數、浮點與定點數的正確選型策略

     編輯:MySQL 資料庫相關知識

為什麼型別選擇至關重要?

無論是免費空間還是大型電商平台,合理的表結構設計與空間利用都是核心競爭力。MySQL 數值型別分為三大類:整數類、浮點類、定點類(DECIMAL/NUMERIC),各有適用場景。

定點數:精準計算的首選

DECIMAL 與 NUMERIC 實際以字串形式儲存,每位數字(含小數點)佔 1 位元組,空間佔用較大。但其最大優勢是小數位數固定、運算不失真,極適合「價格」、「金額」等對準確度要求極高的財務欄位。

浮點數:科學計算的領域

  • FLOAT(4 位元組):可表示約 1.17E-38 的極小絕對值
  • DOUBLE(8 位元組):精度更高,可達 2.22E-308

優勢在於極高精度,但民用級應用極少需要此精度。作者坦言從未實際使用過這兩類型。

整數類型:最值得精打細算的戰場

型別儲存空間無符號最大值典型適用場景
TINYINT1 位元組255年齡、狀態碼、小範圍枚舉
SMALLINT2 位元組65,535遊戲技能值、中等範圍計數
MEDIUMINT3 位元組16,777,215千萬級自增 ID(每行省 1 Byte,千萬行省 10 MB+)
INT4 位元組4,294,967,295通用自增 ID、大多數業務主鍵
BIGINT8 位元組18,446,744,073,709,551,615極大量級分散式 ID、高併發序號

選型黃金法則

「夠用就好,越小越好」 — 選擇能覆蓋業務最大值、且佔用空間最小的型別。
  • 預估資料上限,留 20% 緩衝
  • 優先考慮 UNSIGNED 翻倍正數範圍
  • 避免「為了省事」統一用 BIGINT — 空間與索引效能雙重浪費
  • 自增主鍵按預估行數選型:<1600 萬用 MEDIUMINT,<42 億用 INT

實戰案例

某表預估 1,600 萬行,若主鍵用 INT(4B)改為 MEDIUMINT(3B),單表節省 ~16 MB 儲存空間,索引體積同步縮減,查詢與寫入效能雙贏。

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