1

我有一箇舊的MySQL 4.1數據庫,其中有一個數百萬行的表和一個連接到這個數據庫的舊Java應用程序,並且經常通過此表返回幾千行一個簡單的SQL查詢(即SELECT * FROM people WHERE first_name = 'Bob'。我認爲Java應用程序使用客戶端準備好的語句,但正在考慮將其切換到服務器,並在示例中提到first_name的值將根據用戶輸入的內容而有所不同)。MySQL準備好的語句與存儲過程性能

我想加快選擇查詢的性能,並想知道是否應該切換到Prepared Statements或Stored Procedures。有什麼更快/更少的資源密集(或如果兩者的組合更好)的一般經驗法則

回答

2

你確實有一個first_name的索引,對嗎?這將比在預備語句和存儲過程之間進行選擇更快地提高查詢速度。

+0

嗨,對不起,我應該提到它是索引。 我還沒有試圖提高數百萬行(和MySQL有關)的表的性能,所以我不太確定從哪裏開始查找/測試。 如果一張表有5m行會索引該表的幫助中的一列,或者它有問題/性能問題試圖索引該行數(MySQL數據庫所在的硬件不是最新的)? – amardilo 2009-10-05 11:10:37

0

如果您只有一個查詢需要擔心,那麼您應該能夠實現這兩個選擇(當然是在您的測試平臺上!)並查看哪一個可以爲您提供最佳性能。

(我的猜測是不會有太大的差別,雖然...)

0

看起來像最好的辦法就是進行更改並測試它在測試環境中。

感謝您的幫助。