SQL查詢優化
我們來討論一下select ... from ... where ... exists ....這個了。Exists的查詢速度要比in強得多,這是眾所周知的事,但我們並不可以說完全用exists來代替in。為什麼這麼說呢?我們先來看看可以用exists來代替in的場合吧。
select... from A where id in (select id from B)可以替代為select...from A where exists (select id from B where A.id = id)
not in 的話可以替換成not exists。這是可以使用exists來提高查詢效能的場合,接著什麼是不能直接替換的場合呢?
select...from A where id in (1,2,3,4,5,6....)這種出現零散值的時候就不能直接使用exists來替換了。
如果出現這種情況的話,我的做法是用in和exists結合的辦法,就像我在in篇寫的使用臨時表作為輔佐,先用in把篩選過的資料導進臨時表裡,然後用臨時表跟其他表關聯或者使用where exists(select id from #tempTable where A.id = id)這種方法來篩選記錄。這樣做法往往比一大串的表連線加where in的效能好很多。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-672408/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 優化sql查詢速度優化SQL
- SQL Server 查詢優化功能SQLServer優化
- SQL查詢優化的方法SQL優化
- 優化sql提高查詢速度優化SQL
- 十七、Mysql之SQL優化查詢MySql優化
- SQL查詢優化常見方法SQL優化
- MS SQL Server查詢優化方法SQLServer優化
- MS SQL Server查詢優化方法SQLServer優化
- SQL使用模糊查詢like的優化SQL優化
- 《MySQL慢查詢優化》之SQL語句及索引優化MySql優化索引
- MS SQL SERVER索引優化相關查詢SQLServer索引優化
- SQL Server 2008 查詢優化SQLServer優化
- 深入淺出的SQL server 查詢優化SQLServer優化
- 優化SQL Server資料庫查詢方法優化SQLServer資料庫
- 查詢優化優化
- SQL優化之多表關聯查詢-案例一SQL優化
- 一文終結SQL 子查詢優化SQL優化
- Sql語句本身的優化-定位慢查詢SQL優化
- 改進資料庫效能-SQL查詢優化資料庫SQL優化
- 涉及子查詢sql的一次優化SQL優化
- pgsql查詢優化之模糊查詢SQL優化
- Oracle in 查詢優化Oracle優化
- MySQL查詢優化MySql優化
- join 查詢優化優化
- HBase查詢優化優化
- 查詢優化器優化
- 優化SQL查詢:如何寫出高效能SQL語句優化SQL
- MySql常用30種SQL查詢語句優化方法MySql優化
- Oracle 優化器與sql查詢執行順序Oracle優化SQL
- 優化SQL Server 2008的查詢效能優化SQLServer
- SQL Server查詢速度慢原因及優化方法SQLServer優化
- 高效的SQL(Index-Organized Tables優化精確查詢和範圍查詢)SQLIndexZed優化
- 如何調優 Oracle SQL系列文章:查詢優化器介紹OracleSQL優化
- MySQL 的查詢優化MySql優化
- 分頁查詢優化優化
- MySQL 慢查詢優化MySql優化
- KunlunDB 查詢優化(一)優化
- MySQL優化COUNT()查詢MySql優化