高效的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表的每一个元组遍历这个小批量数据集,性能大大得到提升。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
分享并总结一下公司的SQL规范。
SQL code
1.用log4j记录SQL, 不用System.out.println()。并且通过log4j记录sql语句用时多少, 性能...
-
【急】大型数据库的存储方案
题目:通过网上调研,完成一个大型数据库的存储方案。
------解决方案--------------------
网上调研
...
-
count
t-sql中,count的执行效率如何 例如一表中有500W条数据,rid是自增+主键,要统计总数用count(rid) 合适不?欢迎高手给出明确答案...
-
所有积分求:每年1000G数据解决方案
现在数据库一查就卡死 有什么解决方案吗
------解决方案--------------------
一天3G,还行吧...
-
问个关于数据库设计的问题
在数据库设计的时候 有主键外键的关联
可是我们实际做一些系统的时候 需要在数据库上设置外键吗?
比如 ...
-
系统性能优化问题
各位好!
在系统中存在A,B两张表,这两张表中的数据数据增长都比较迅速(每月增长20万条),两张表中都有唯一键用来对...
-
c2c电子商务网站关于商品表的建立
目前在做一个c2c电子商务网站,主要是想借此提高自己的水平,现在遇到的问题就是不知道商品表是建...
-
老大:帮忙设计一下数据库
我想做一个RSS资讯聚合网站,把所有的RSS订阅信息缓存进数据库,再被页面调用。
数据表大致需要以下字段:
id...
-
请问各位哪里有《数据库系统概念》免费版电子书下载!急
请问各位哪里有《数据库系统概念》免费版电子书下载!急
------解决方案---...
-
Oracle专家调优秘密
在过去的十年中,Oracle已经成为世界上最专业的数据库之一。对于IT专家来说,就是要确保利用Oracle的强大特性来...