-
单表优化:
- 字段选择:尽量使用
TINYINT
、SMALLINT
、MEDIUMINT
作为整数类型,而非INT
;如果字段值非负,可以使用UNSIGNED
。对于字符串字段,使用枚举或整数代替字符串类型,使用TIMESTAMP
而非DATETIME
。尽量减少字段数量,建议在20个以内,避免使用NULL
字段,因为它们会增加查询复杂度并占用额外索引空间。 - 索引优化:索引不是越多越好,应根据查询需求有针对性地创建。避免在
WHERE
和ORDER BY
命令中涉及的列建立索引,避免对字段进行NULL
值判断,因为这会导致全表扫描。对于值分布稀疏的字段,如“性别”,不适合建索引。字符字段最好建前缀索引,避免使用主键和外键,尽量使用多列索引,并删除不必要的单列索引。 - 查询优化:开启慢查询日志来找出执行时间较长的SQL语句。避免列运算和复杂的查询操作&
- 字段选择:尽量使用
大表查询的优化方案
于 2025-04-14 20:26:17 首次发布