锦囊妙计:认识经典SQL模式

过滤数据会遇到的最典型情况有九种:

小结果集,源表较少,查询条件直接针对源表。

小结果集,查询条件涉及源表之外的表。

小结果集,多个宽泛条件,结果取交集。

小结果集,一个源表,查询条件宽泛且涉及多个源表之外的表。

大结果集

结果集来自基于一个表的自连接

结果集以聚合函数为基础获得。

结果集通多简单搜索或基于日期的范围搜索获得

结果集和别的数据存在与否有关。

1.小结果集,直接条件

多为返回小结果集,源表数量较少,查询条件也是直接针对源表的。当我们要通过一组条件查出少许记录时,首先注意的就是索引。

索引可用性

对某字段使用函数时,该字段上的索引并不能起作用。可以建立函数索引,这以为这对函数的结果加索引,而不是为字段加索引。

锦囊妙计:认识经典SQL模式_第1张图片

小结果集,间接条件

锦囊妙计:认识经典SQL模式_第2张图片

锦囊妙计:认识经典SQL模式_第3张图片

多个宽泛条件的交集

锦囊妙计:认识经典SQL模式_第4张图片

锦囊妙计:认识经典SQL模式_第5张图片

锦囊妙计:认识经典SQL模式_第6张图片

 

多个间接宽泛条件的交集

为了构造查询条件,需要连接(jion)源表之外的表,并在条件中使用该表的字段,就叫间接条件。

锦囊妙计:认识经典SQL模式_第7张图片

锦囊妙计:认识经典SQL模式_第8张图片

优化器忽略了查询条件。优化器先对ttraoma表进行完整扫描,接着访问和包ttraoma关联的所有小表,最后,对其他表运用我们的过滤条件。将查询条件推迟执行,不利于减少要处理的数据量。

既然访问了ttraoma这个关键表,应该执行语句中的查询条件,这样可以借助这些表与ttraoma表之间的链接(jion)先去除表中无用的记录。

让DBMS依我们要求的方式执行查询。依靠SQL方言。例如:告诉优化器按表名在from子句中出现的顺序依次访问各表。

锦囊妙计:认识经典SQL模式_第9张图片

锦囊妙计:认识经典SQL模式_第10张图片

嵌套查询是个不错的选择,他使表的关联变得明确,而SQL语句的阅读也相当容易。

 

 

 

 

你可能感兴趣的:(ExtJS)