以下是MySQL中TINYINT/INT/BIGINT的典型應用場景及實例說明:
一、TINYINT(1字節)
1.狀態標識
-- 用戶激活狀態(0未激活/1已激活)
ALTER TABLE users ADD is_active TINYINT(1) DEFAULT 0;
適用于布爾值存儲和狀態碼標記。
2.評分系統
-- 五星好評系統(1-5分)
ALTER TABLE product_reviews ADD rating TINYINT UNSIGNED CHECK (rating BETWEEN 1 AND 5);
適合小范圍整數存儲。
二、INT(4字節)
1.主鍵設計
-- 用戶表主鍵(自增ID)
CREATE TABLE users (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
);
滿足大多數業務場景的ID需求。
2.計數器場景
-- 文章閱讀量統計
ALTER TABLE articles ADD view_count INT UNSIGNED DEFAULT 0;
適合中等規模的計數場景。
三、BIGINT(8字節)
1.分布式ID
-- 訂單表雪花ID
CREATE TABLE orders (id BIGINT UNSIGNED PRIMARY KEY COMMENT '雪花算法生成'
);
支持高并發分布式系統。
2.金融流水號
-- 交易流水記錄
ALTER TABLE transactions ADD serial_no BIGINT UNSIGNED UNIQUE;
避免大數值溢出問題。
選擇建議:
????????優先選擇能滿足需求的最小類型。
????????無符號類型可擴大正數范圍。
????????主鍵字段需預留擴展空間。