业务需要,优化一段多表查询脚本。
总结下来,采取以下步骤。
分析语句
- 分析语句,了解逻辑,是否可以先优化逻辑。
- 查询语句的查询范围,是否是全表查询,如果是,尽量优化为按索引查询。
- 查看语句数量,是否有重复的子查询可以合并,查看是否有多余的连接表。
- 尝试使用临时表,可以显著提升查询性能。
DROP TABLE IF EXISTS TEMP_NAME;
CREATE TEMPORARY TABLE TEMP_NAME(
COLUMN1 COLUMN_TYPE,
COLUMN2 COLUMN_TYPE
);
INSERT INTO TEMP_NAME
SELECT COLUMN1,COLUMN2 FROM DATATABLE;