专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能数据库开发

高效的sql语句解决方案

发布时间:2010-05-24 21:18:04 文章来源:www.iduyao.cn 采编人员:星星草
高效的sql语句
小弟初来乍到做web开发,最近学习sql,如何能编写高效的sql呢,大侠们有什么好书推荐下呢……

------解决方案--------------------
找本语法书,一个分析器,把各种你能想到的写法不停测试。
lecco sql export,这个自动工具有些帮助。
------解决方案--------------------
少用!=(<>),尽量用=,尽量不要desc,尽量少用嵌套查询,表的设计尽量合理,尽量少用多表级联,尽量使用索引,尽量使用视图.................
------解决方案--------------------
有时候嵌套查询的效率还是挺高的,至少比多表连要高。多表连接在很大数据量的时候会使性能急剧下降,这时候可以有嵌套查询来优化。具体还要自己多多总结。举一个例子
实体表:student(id,name) teacher(id,name)
联系表:s_t(sid,tid)
考虑下面的查询
select s.name
from student s,s_t
where s.id=s_t.sid and s_t.tid=1
如果改为
select s.name
from student s
where s.id in(select sid from s_t where s_t.tid=1)
情况会如何呢?
第一种查询先把两个表进行笛卡儿积,这时要进行处理的数据量会增加一个数量级,如果存在大量数据,性能就会急剧下降。
第二种查询先搜索一个表(s_t),得到的结果是一个小批量的数据(无论原数据量有多大),再用student表的每一个元组遍历这个小批量数据集,性能大大得到提升。
------解决方案--------------------
有注意性能的书,下本来看。比如where后怎样放条件,哪些语句费时...
------解决方案--------------------
打好基础,自己慢慢体会总结!

可以把自己的认为复杂SQL语句放到csdn上来,给别人看看!
------解决方案--------------------
有时候嵌套查询的效率还是挺高的,至少比多表连要高。多表连接在很大数据量的时候会使性能急剧下降,这时候可以有嵌套查询来优化。具体还要自己多多总结。举一个例子 
实体表:student(id,name) teacher(id,name) 
联系表:s_t(sid,tid) 
考虑下面的查询 
select s.name 
from student s,s_t 
where s.id=s_t.sid and s_t.tid=1 
如果改为 
select s.name 
from student s 
where s.id in(select sid from s_t where s_t.tid=1) 
情况会如何呢? 
第一种查询先把两个表进行笛卡儿积,这时要进行处理的数据量会增加一个数量级,如果存在大量数据,性能就会急剧下降。 
第二种查询先搜索一个表(s_t),得到的结果是一个小批量的数据(无论原数据量有多大),再用student表的每一个元组遍历这个小批量数据集,性能大大得到提升。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: