我有一個大型數據庫的電話目錄至少包含約50萬行,每行包含兩列「電話號碼」,第二個是「名稱」,電話號碼是varchar 15字符長度,「名稱」列也是長度爲500的varchar,名稱列包含多個以「;」分隔的人名,最佳的SQL數據庫結構的大手機目錄
該數據庫的問題是,當我使用選擇查詢來搜索它執行速度非常快的數字時,但是當我使用類似「%marlin%」搜索人名時,它執行速度非常慢,因爲它正在執行全掃描該表
我如何重新設計我的數據庫結構,以具有快速查詢的時候我搜索了包含「%馬丁%」的具體名稱的任何一個電話號碼
PS:?我在MYSQL有基礎知識;
非常感謝幫助
多個名字的意思是? 2人或更多2人可以有相同的號碼? –
使用全文搜索進行調查。是的,即使存在,'%martin%'搜索也不能在'names'列上使用索引。 –
這樣的多個名字:martin; martin sylvie,martin garagel; sylvie – Slash2016