我目前正在使用mysql w/PHP,因爲這是我學到的東西,並且從來沒有使用任何其他東西。在我目前的項目中,我有一個數據庫,有1000萬行和10列,並且在本地(Windows)環境以及生產環境(linux)中執行復雜的調用時發現它非常慢。兩臺服務器都有超過10GB的內存。我已經安裝了Zend AMF,所以所有的數據傳輸都是二進制的。如何優化MySQL查詢?
我自學成才,從來沒有人教過我有效的DBM的靈感。我的第一個想法是打破數據庫成塊,然後改變我所有的PHP代碼..看起來像很多麻煩,並在PHP代碼中出現錯誤...有沒有更好的方式,我不知道?
我的用戶界面基於閃存,如果它意味着速度的顯着提高,我願意更換中間件。在這一點上,我真的只知道PHP作爲中間件。
我不想在這一點上學到另一個數據庫,並認爲必須有一些交易技巧來優化我的表現,但是在我侵入我的數據庫之前想獲得一些想法。
fyi:數據庫只能從用戶的角度閱讀。用戶不會將任何新數據輸入到數據庫中。另外,在數據庫中的1000萬行中,只有大約20萬個被大量使用。 (我不知道哪200千行被大量使用,因爲錄製這些信息可能會讓我的數據庫變得更慢)。
每次調用是一樣的東西:
SELECT name, id, address
FROM table
WHERE date_added=?
LIMIT ?,?
ORDER BY no_children ASC
...和其他各種 「選擇」 的聲明。
PS:'LIMIT'條款應遵循'ORDER BY' – zerkms 2010-06-27 05:57:54