MySQL中TINYINT/INT/BIGINT的典型应用场景及实例

以下是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;

避免大数值溢出问题。

选择建议:

        优先选择能满足需求的最小类型。
        无符号类型可扩大正数范围。
        主键字段需预留扩展空间。

你可能感兴趣的:(mysql,数据库)