我使用PHP和MYSQL(MYISAM)創建電子商務Web應用程序。我想知道如何加快我的查詢針對大型數據庫的mysql優化
我有一個超過一百萬記錄與以下列的產品表:id(int,primary)catid(int)usrid(int)title(int)description(int)狀態(枚舉)日期(日期時間)
最近我根據產品類別(catid)將此表分成多個表。認爲它可能會減少服務器上的負載。
現在我需要從這些表中獲取結果,並結合以下幾組條件1.結果與usrid和狀態匹配。 (用於獲取用戶產品)2結果匹配狀態和標題或描述(例如:用於產品搜索)
現在我必須使用UNION從這些所有表中取得結果,這會降低表達的風險也不會將LIMIT應用於組合結果集。我想在所有這些列上創建一個索引來加速搜索,但這可能會降低插入和更新的速度。同樣,我正在認爲分裂桌子並不是一個好主意。
我想知道在這種情況下優化數據檢索的最佳方法。我也接受新的數據庫模式提案。
你能否給我們提供一個示例Database-Layout?另外,你是否考慮使用`JOIN`? – Bobby 2010-12-23 10:58:39
如果您使用相關的表和關鍵字概述了當前的數據庫模式,那將會很有幫助。 對於擁有數百萬條記錄的表,我建議不要聯合或將它們聯接到其他表中,而是在表上進行單個查詢並讓腳本組合您的結果。 – Oli 2010-12-23 11:00:33