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

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - 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数据库模型非常适合。
(...此处待请教)。