SQL常见优化技巧详解####一、合理利用索引- 全文扫描与索引:在查询语句中使用WHERE子句时,应尽可能地利用索引来减少全文扫描的情况。例如,如果要查找numNULL的记录,则应避免使用SELECT id FROM t WHERE num IS NULL这样的语句,因为这将导致全文扫描。相反,如果已知num默认值为0并且没有NULL值,则可以使用SELECT id FROM t WHERE num = 0来替代,这样可以利用索引提高查询效率。 - 避免使用!=:**在`WHERE`子句中使用`!=`或操作符会降低查询性能,因为这些操作通常无法利用索引。例如,SELECT id FROM t WHERE num != 10将无法利用针对num列建立的索引。 - 使用UNION ALL替代多个ORWHERE子句包含多个OR条件时,考虑使用UNION ALL替代。例如,对于SELECT id FROM t WHERE num = 10 OR num = 20这样的查询,可以改写为SELECT id FROM t WHERE num = 10 UNION ALL SELECT id FROM t WHERE num = 20。这样做可以更好地利用索引。 ####二、优化INNOT IN使用- 使用BETWEEN替代IN在某些情况下,使用BETWEEN可以替代IN操作来提高查询性能。例如,SELECT id FROM t WHERE num IN (1, 2, 3)可以改为SELECT id FROM t WHERE num BETWEEN 1 AND 3。 - 避免模糊查询:使用LIKE进行模糊查询(如SELECT id FROM t WHERE name LIKE '?c%')会导致全文扫描,因此应当尽量避免这类查询,除非必要。 ####三、优化计算和函数调用- 简化表达式:**在WHERE子句中使用计算或函数调用时,应尽可能简化这些操作。例如,SELECT id FROM t WHERE num / 2 = 100应改为`SELECT id FROM t WHERE num