我有一个大型数据库的电话目录至少包含约50万行,每行包含两列“电话号码”,第二个是“名称”,电话号码是varchar 15字符长度,“名称”列也是长度为500的varchar,名称列包含多个以“;”分隔的人名,最佳的SQL数据库结构的大手机目录
该数据库的问题是,当我使用选择查询来搜索它执行速度非常快的数字时,但是当我使用类似“%marlin%”搜索人名时,它执行速度非常慢,因为它正在执行全扫描该表
我如何重新设计我的数据库结构,以具有快速查询的时候我搜索了包含“%马丁%”的具体名称的任何一个电话号码
PS:?我在MYSQL有基础知识;
非常感谢帮助
多个名字的意思是? 2人或更多2人可以有相同的号码? –
使用全文搜索进行调查。是的,即使存在,'%martin%'搜索也不能在'names'列上使用索引。 –
这样的多个名字:martin; martin sylvie,martin garagel; sylvie – Slash2016