30.1 背景描述
首先介绍一下本章优化实例的背景。
30.1.1 任务描述
这个任务是需要从一系列大表中清理3个省的大批过时数据,具体的清理过程简单地说就是根据不同的miscid值创建不同的临时表,类似以下:
CREATE TABLE temp_mid AS SELECT mid FROM ssr WHERE SUBSTR(ssid,1,7) IN (SELECT prefixnum FROM prefix WHERE mcid='0012');
然后通过这个临时表连接另一个大表,做以下删除工作:
DELETE SSF WHERE mid IN (SELECT mid FROM TEMP_MID_HUBEI);
上述任务根据不同的关键字,需要执行几十次,如果不加任何优化的话,每一次都需要执行几十个小时。由于需求、操作和优化思路大体相同,下面就以上面的例子详细说说实际应用中如何一步步优化并将操作提速到近千倍。
30.1.2 数量级统计和描述
首先统计这个操作涉及到的几张表:
SELECT COUNT(*) FROM PREFIX;
SELECT COUNT(*) SSR FROM SSR;
SELECT COUNT(*) SSF FROM SSF;