我在具有250 000行的Amazon RDS實例上有一個MySQL表。當我嘗試使用MySQL進行報告 - 最簡單的查詢耗時太長
SELECT * FROM tableName
不附加任何條件(只是用於測試,正常查詢指定我需要的列,但我最需要他們的),查詢需要20到60秒之間執行。這將是我的報告的基本查詢,並且報告應該在60秒內運行,所以我認爲這不會奏效(當我添加連接時,它會超時)。報告在我們的小型測試環境中運行時沒有任何問題。
難道是因爲MySQL試圖鎖定表並等待所有寫入完成而需要這麼久嗎?這張桌子上可能有很多寫作。我正在做一個MySQL從屬查詢,因爲我不想用我的查詢鎖定生產系統。
- 我對於關係數據庫有多少行沒有經驗。是250 000行約30列(varchar,日期和整數類型)多少?
- 我怎樣才能加速比這個查詢(硬件,軟件,查詢優化...)
- 我可以告訴MySQL的,我不關心數據可能是不一致的(這是一個快照從報告數據庫)
- 這個查詢是否有可能在60秒內運行,還是我必須調整目標?
將索引添加到表中可能會有所幫助。 – EmCo
您正在使用哪種引擎? InnoDB,MyISAM?他們都不應該有任何處理250K行的問題。檢查表格是否已正確編制索引。如果您使用的是MyISAM,那麼您可以增加關鍵緩衝區大小 – Barranka
我正在使用InnoDB。對於一個SELECT(*)我該怎麼索引(這基本上是我的應用程序將要做的事情,我需要轉儲一些連接表,但它們都被索引)。 –