色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

多表連接查詢和多次單表查詢哪個效率高

錢諍諍2年前30瀏覽0評論
多表連接查詢和多次單表查詢哪個效率高?

這個得看情況,一般數據不大的情況下多表連接查詢和多次單表查詢的效率差不多。如果數據量足夠大,那肯定是多次單表查詢的效率更高。在很多大的公司里面,都會禁用多表連接查詢,原因就是一旦數據量足夠大的時候多表連接查詢效率會很慢,而且不利于分庫分表的查詢優化。那么看一下下面這個例子。

兩種查詢方式的比較

我這里有一個數據庫,我們拿里面的客戶表和地區表做兩種查詢的對比。用戶表數據是31萬條,地區表3511條。

1. 使用連表查詢成都市的客戶總數

2.使用多次單表查詢客戶總數

可以看到,查詢出來的結果都是一樣,但是第一種的連表查詢用了0.67秒中,而第二種多次單表查詢一共用時0.14秒。這個對比已經是很明顯了吧。

雖然這只是一個很簡單的例子,但是對比結果是非常明顯的。在實際應用中可能會更復雜、數據更多,如果還使用連表查詢時非常慢的,而且還消耗服務器資源。

所以現在在很多大了公司明確要求禁止使用join查詢,比如阿里、騰訊就明確規定禁用三表以上的join查詢。

總結一下,單表查詢的優點

1. 多次單表查詢,讓緩存的效率更高。

許多應用程序可以方便地緩存單表查詢對應的結果對象。另外對于MySQL的查詢緩存來說,如果關聯中的某個表發生了變化,那么就無法使用查詢緩存了,而拆分后,如果某個表很少改變,那么基于該表的查詢就可以重復利用查詢緩存結果了。

2. 將查詢分解后,執行單個查詢可以減少鎖的競爭。

3. 在應用層做關聯,更容易對數據庫進行拆分,更容易做到高性能和可擴展。

4. 查詢本身效率也可能會有所提升。

5. 可以減少冗余記錄的查詢。

6. 在應用中實現了哈希關聯,而不是使用MySQL的嵌套環關聯,某些場景哈希關聯的效率更高很多。

7. 單表查詢有利于后期數據量大了分庫分表,如果聯合查詢的話,一旦分庫,原來的sql都需要改動。

8. 很多大公司明確規定禁用join,因為數據量大的時候查詢確實很慢

所以在數據量不大的情況下,兩種方式的查詢都沒什么明顯的差別,使用多表連接查詢更方便。但是在數據量足夠大幾十萬、幾百萬甚至上億的數據,或者在一些高并發、高性能的應用中,一般建議使用單表查詢。

如果覺得笨貓的回答對你有用,點個關注,非常感謝。