2013-02-05 72 views
2

在循環中執行數據庫查詢顯然存在性能問題。但是如果查詢被用作準備語句,它是否有所作爲?在循環中執行數據庫訪問的mysql性能

什麼是最好的連接在一起的表,並獲得結果或在循環中使用準備好的語句?

回答

2

使用join幾乎總是首選,而不是循環結果集以獲得更多結果。

關係數據庫管理系統是爲結合相關結果而構建的,而且非常有效......另外,這樣可以節省許多往返數據庫的往返行程,如果過度使用,這會變得代價高昂 - 無論您是使用預先準備好的語句。

1

準備好的語句的開銷可能不會是輸入的轉義,它將成爲數據庫連接,重新連接或發送最終化sql語句的行爲。你的代碼和關係數據庫之間的接口很可能是這個過程的緩慢點。然而,就我而言,我通常會選擇最簡單,最能夠從一開始就進行維護的任何事物,如果性能實際上表現出來的速度很慢,那麼只關心性能。儘管如此,如果性能證明需要優化,那麼將數據抓取功能寫入單獨的函數或方法中,以便實現可以改變。

此時,您可以開始優化您的sql,並使用聯接或聯合作爲多個預準備語句的替代方案。