我有一個大型的MyISAM表,其中有大約200,000,000行數據表示可通過Web UI搜索的事件。用戶界面是「高級搜索」類別的頁面,因此用戶可以爲任何可搜索字段的組合輸入搜索條件。如何針對模塊化搜索優化MySQL索引/查詢?
表結構的簡化版本是這樣的:
events
event_id, event_code, place_id, person_id, date, type
people
person_id, person_name
和用戶被允許使用所要求的類型,可選的時間範圍進行搜索,和零個或多個event_codes,place_ids,和/或person_names。
爲了優化這種類型的搜索表,我需要一個索引列的每個排列,除了那些不包括類型?還是有一種更有效的方式來索引表。
目前,該表具有覆蓋event_code,place_id,person_id,日期和類型的主索引,因此當您使用所有字段進行搜索時,響應是可以接受的。但是,如果您嘗試使用例如只有日期範圍,查詢基本上不會返回。
爲客戶提供最有用的信息,我們真的需要看到將執行特別包括實際查詢: - WHERE子句 - GROUP BY子句 - HAVING子句 從而影響性能很大。 –
200M活動!!!你非常成功:-D –