引擎、索引与限制要点
- 临时表默认用内部临时引擎,常是 MEMORY 或 TempTable
- 可以建索引:CREATE INDEX 或建表时写 PRIMARY KEY / INDEX
- MEMORY 引擎的临时表不支持 TEXT / BLOB 这类大字段
- 可以用 ALTER TABLE 临时表 ADD COLUMN 改结构,和普通表一样
- 临时表不能用外键约束,想引用别的表做关联得想别的办法
- 数据量大时临时表会溢出到磁盘,性能退化要留意
引擎、索引与限制示例
-- 建表时直接带主键和索引
CREATE TEMPORARY TABLE tmp_user_rank (
user_id INT NOT NULL PRIMARY KEY,
score INT NOT NULL,
INDEX idx_score (score)
) ENGINE=InnoDB;
-- 中途加一列
ALTER TABLE tmp_user_rank
ADD COLUMN level VARCHAR(10) NOT NULL DEFAULT 'N';
避坑提醒:临时表默认走内存引擎,字段用了 TEXT/BLOB 会直接报错;需要大字段时显式指定 ENGINE=InnoDB。