廊坊市縱橫網絡技術有限公司
手機:18033634268
座機:0316-5556008
在我剛進入編程世界時,我使用的數據庫是SQL Server 當時做實驗時,使用WHERE ID = 鍵值 和 WHERE IN (子查詢) 時,效率是非常高的,因為是對主鍵查詢,所以速度沒有任何問題。
隨后使用了mysql 進行開發,可是有一次處理大數據量時發現了性能問題,一條數據執行效率非常低下。
隨后翻閱文檔,才發現了問題所在:
SELECT * FROM T1 WHERE ID IN (SELECT ID FROM T2)
這是當時那條語句的模型。
如果T1表中的數據很大,T2表中的數據比較小,上面的語句是很快的,T1只被訪問一次,
反之應該使用EXISTS替換IN語句,只是驅動表的順序改變了,但是性能會發生很大變化。
任何知識的討論都不應該脫離上下文以及語境,否則官方早就把IN語句消除了。
下一篇:Web設計和開發的前景與趨勢
返回:BLOG首頁
Copyright 2012-2016 縱橫網絡 保留公司所有權利. 備案號:冀ICP備12004621號-1