1.分割表
(1)水平分割:按行分割,提高查询速度,但应用程序由于要联合多个表所以会很复杂;
(2)垂直分割:按列分割,将访问频率高的字段单列表,在同时查询或更新不同分割表中列的情况比较少的情况下使用。
2.保留冗余列:两个或多个表在查询时经常需要连接时,可以在其中一个表上增加若干冗余列,以避免表间的连接过于频繁。一般在冗余列的数据不经常变动的情况下使用。
3.增加派生列:派生列时由表中其他多个列计算所得,增加派生列可以减少统计运算,在数据汇总时大大缩短运算时间。
4.ISNULL和ISNOTNULL:不能在有NULL值的列上使用索引。
5.连接列:对于有连接的列,即使最后的连接值为一个静态值,优化器也不会使用索引。
6.带通配符的LIKE语句:在词首出现的通配符不能使用索引。
7.ORDERBY语句:任何在ORDERBY语句的非索引项活有计算表达式都将降低查询速度。
8.尽量将<>拆分称>和<。
9.IN和EXISTS:IN要遍历所有记录,EXISTS只遍历符合条件的记录,所以EXISTS效率高。