資料庫聯表查詢時,是直接使用join好還是分別查詢到資料後自己處理較好?

時間 2021-10-15 14:08:20

1樓:

sql語句背後的查詢優化提公升了應用開發的效能下限,同樣也限制了效能優化的天花板,這就是通用優化器的一體兩面。

如果對自己的效能優化能力有信心,大可在應用程式中實現join任務,達到應用層(特性)感知的優化,往往比後端的建議更佳。

2樓:Shreck Ye

從查詢效率上來講,只要能用到相同的索引,效率應該是差不多的。

我覺得分別查詢需要考慮的影響有兩點:第一是,如果事務的隔離級別(isolation level)較低可能造成幻讀(phantom read);第二是,如果資料庫連線庫不支援或者開發者不使用非阻塞流水線呼叫或者執行多語句的功能,可能會在等待 IO 上花費更多時間,每乙個 API 的執行速度變慢,會帶來更高的延遲,阻塞開發模型下也可能會稍微降低併發量。

所以綜合來說,一般的查詢比較簡單,能用 join 或者子查詢的時候盡量用;當然一些複雜情形並不方便用,這時候分別查詢自然是開發效率更高的方法,等到有時間有能力再優化也不遲;還有會涉及查詢之間有應用邏輯處理的情形(比如比較複雜的函式、安全隨機數生成、密碼學演算法等等),那就最好分別查詢了,畢竟大家公認的是用 SQL 寫應用邏輯是很蠢的行為。

c連線mysql時資料庫和表名是漢字時連線不上應該怎麼做

趙偉 返回什麼錯誤?可以呼叫mysql errno 和mysql error 看到。應該是字符集設定錯誤導致mysqld找不到指定的db。可以呼叫mysql options 設定客戶端字符集,確保發給server的語句的字符集編碼符合在server端設定的character set client 紅...

微服務架構中可以直接使用資料庫作為註冊中心嗎?

小小笑兒 可以的,註冊中心只是為了統一管理服務的註冊資訊,是很多的對。所以說只要是能夠提供儲存和查詢資料的工具都可以用來作為註冊中心。比如你完全可以自己寫乙個 http server 來作為自己的註冊中心 類似 eureka 三觀成型沒法改 可以其實大多數公司連日均8000pv的訪問坎都過不去,my...

服務啟動時,是否需要對資料庫表結構進行驗證?

Ghcost 需要信任資料庫。資料庫中的資料結構,在應用系統上線時初始化 在應用執行 啟停時,結構不變 在應用版本公升級時,結構可能會變化。資料庫的資料正確,由應用 運維 資訊保安三方面共同保證。系統資料以資料庫為準。好比知乎的資料,問題 回答 賬號等資訊,都儲存在知乎的資料庫中。當知乎的應用重啟時...