我在醫院有一張病人表,所以隨着時間的推移,這張表可能會包含數萬行。爲每個患者分配一個醫院唯一的ID號(BIGINT)作爲PRIMARY KEY,其餘的列是VARCHAR或CHAR,以及一個DATE列。據我所知,PRIMARY KEYS會自動編入索引,因此患者ID的搜索是最優的(?)。MySQL - 將索引加快我的搜索查詢?
患者可以通過一個單一領域或該ID,姓名,地址的組合來搜索,出生日期等。我可以簡單地優化我的搜索通過創建對這些領域中的每一個指數?如果在這些INDEX字段的組合上執行搜索,這種優化是否也可以工作,如
SELECT * FROM patients WHERE first_name="John" AND address="blah blah blah";
???
而且,我相信MySQL使用搜索,也許是二進制搜索自己的內部算法,並且用戶無法選擇或實現自己的?
會不會有,爲的所有組合創建單一和多列索引的缺點例如,我可以在first_name上有一個索引,在地址上有一個單獨的索引,在first_name和address上有另一個索引,等等...... – Amoeba
索引佔用空間,爲什麼你不試試看如果你喜歡的話,你也可以刪除索引,如果他們沒有幫助的話。 –