惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
H
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
C
Check Point Blog
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
M
MIT News - Artificial intelligence
B
Blog RSS Feed
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
美团技术团队
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale

博客园 - buru

django begining Update 两个表之间更新数据问题 用户控件与应用页面的事件顺序 linq小问题总结 “尝试读取或写入受保护的内存”错误处理 firefox浏览器的默认事件 配置rails运行环境 通过c#和ironruby学习 ruby语言 操作Access数据库碰到的几个问题 asp.net的CodeDom zz天涯-关于职业生涯的 一个线程管理器 zz两个存储过程 看《C#线程参考手册》 Mediator 中介者模式 让firefox支持IE的一些属性 IE与firefox取得事件对象的函数(zz) proxy模式 c#通过url获取文件
SQL 语句查询与性能
buru · 2007-12-28 · via 博客园 - buru

2007-12-28 00:42  buru  阅读(239)  评论()    收藏  举报

1、筛选记录:
Where,最好用单个表中的主键进行筛选。
当条件为Not、<>时将忽略索引。
like运算符将进行全表扫描。
Where子句中的函数将可能禁用某字段的索引。

 SELECT * FROM EDITION WHERE To_char(Print_Date,'DD-MON-YYYY')='01-jan-2005';

用索引的方法-->

SELECT * FROM EDITION WHERE PRINT_DATE=TO_DATE('01-jan-2005','DD-MON-YYYY');

2、当表很小时,读取表要比读取表上的索引更加高效。
3、复合索引的使用:WHERE  子字句的条件中 复合索引的顺序也决定是否启用复合索引。
4、Having 与WHERE
 WHERE 子句在数据库读取记录是(发生I/O活动后)筛选记录。Having 子句(GROUP BY 子句的一部分)
会筛选聚合组,并在数据库所有I/O活动之后进行筛选.以下两句 第二句更高效

SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10  AND PUBLISHER_ID>5

后面一个条件移到WHERE子句下,将少读5条记录

SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION WHERE   PUBLISHER_ID>5
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10 

===============
SQL语句连接查询的几个规则:

1、先进性大的筛选--对最大的几个表进行筛选,以此减少记录连接。
2、使用索引。较小的表除外。读取的大表的记录的百分比较高的也不用索引。
3、嵌套子句半连接---使用子查询能够调整连接,至少能够简化连接。这种调整对高度规范化的OLTP数据库模型非常适合。
(...此处待请教)。