2011-10-12 51 views
0

我試過了一個關於mysql的查詢,查詢曾調用其他函數。 然後我在存儲過程中添加了非常相同的查詢,然後在mysql上執行該過程。 正常查詢的執行時間比過程少1秒。 是不是它應該是相反的,因爲程序會被緩存。Mysql查詢與存儲過程的性能

如果我在這裏錯過了一些東西,請向我解釋。我很感謝你分享的知識。

問候

+0

需要更多的信息,理想的查詢 –

+0

顯示一些代碼,請您的查詢和表定義。 – oezi

+0

你第二次嘗試過嗎?對於兩者的代碼也是有用的。 –

回答

0

存儲過程解析和編譯,只有當它在數據庫中的第一個,同時創建一個文本查詢需要進行解析和編譯每次它執行時一次。這是差別,對於有限數量的通話來說很小。
如果您只是針對單個查詢進行比較,那麼查詢是最好的選擇方式,但對於大型查詢,您應該使用stroed過程。

0

我不知道是否適用於mysql,但對於其他數據庫引擎(如Oracle),查詢可能會被緩存並鏈接到編譯後的連接。事實上即使數據也可能被緩存。

您是否嘗試每次啓動查詢和存儲過程幾次?正確估計性能是強制性的。