資料庫多表查詢中速度緩慢的解決辦法

2021-10-03 12:31:09 字數 757 閱讀 8009

之前做的查詢功能今天被發現你速度緩慢 於是上網搜尋解決的辦法,但是網上的大佬們都是提到了優化資料庫設計方面的辦法,但是作為乙個實習生怎麼敢輕易改動資料庫 於是就自己花了乙個下午在改一條sql語句,最後總結出來了一點經驗吧!

條件先行

在查詢的時候大部分都是多表聯查吧,單查乙個表的情況很少 ,在倆個表以及倆個表以上聯查的時候肯定會有乙個主表(大部分條件都是在個表),其他的表基本就是乙個條件等於一下 查乙個字段 問題就在這裡

謹記:查詢是盡量巢狀select(最笨的辦法),在最內層的select裡面只查資料最多的那個表,而且該層select的from後盡量只出現乙個表(主表),需要用到其他表的時候再去巢狀select(外層),把內層表查到的資料放在外層表的from關鍵子後 作為乙個新表來查

我感覺自己沒有說清楚 那就舉個例子吧:

優化前:

select a.a , a.b , a.c , b.a from biaoone a , bioatwo b where a.d = 『』 and a.e like 『%%』 and a.f = b.a and a.g = b.b

優化後:

select t.* , tt.a from

(select a.a , a.b , a.c from biaoone a where a.d = 『』 and a.e like 『%%』) t , bioatwo tt

where t.f = tt.a and t.g = tt.b

大致就是這個意思,優化後的速度比優化前快很多 尤其在資料量很大的情況下

多表查詢資料庫

在專案中建立資料庫的時候,我們經常會進行多表查詢。資料庫中建立乙個表應該與乙個實體類相對應。乙個實體物件應該與一條記錄相對應。資料庫是一種結構化的查詢語言,資料庫語言是非過程化的,寫一句就可以執行一句。進行建表的時候,如果是一對多的關係,應該在多的一方建立乙個字段。該字段為少的一方的id。進行建表的...

資料庫多表查詢

笛卡爾積 select from emp,dept select from emp cross join dept 內連線 inner join 內連線把兩個表連線成乙個表 稱為第三個表 在這個表中僅包含那些滿足連線條件的記錄行 select from emp,dept where emp.dept...

資料庫多表查詢 子查詢

子查詢 查詢中巢狀查詢,稱巢狀巢狀查詢為子查詢 下面要使用的表如下,放在此處便於更好地理解 emp 員工資訊表 dept 部門表 例 查詢公司員工工資最高的員工資訊 首先要得到公司員工的最高工資的值 select max salary from emp 假設查詢結果為10000然後根據上一句sql語...