多列模糊查询 性能如何提升

zywhao 2012-12-08 04:34:05
我有一数据表里面字段有15个, 其中 userid, name ,callsign,cnName,IMO 要作模糊查询, 用户输入一个查询条件, 这五项都要进行模糊匹配

SELECT userid, name ,callsign,cnName,IMO FROM TBInfo where userid like 'liy%' or namelike 'liy%' or callsignlike 'liy%'  or cnName like 'liy%' or IMO like 'liy%'


表中数据有150W,现在这样查询一次获得结果要7秒钟,

如果改进才能使用查询速度在1秒以内完成。



原想 将表平均分到四个数据库里 DB0,DB1,DB2,DB3 查询时使用 Union 来查询,时间反而更长了


...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
青春code 2012-12-08
  • 打赏
  • 举报
回复
对做条件的字段建索引
你的选择B 2012-12-08
  • 打赏
  • 举报
回复
楼主的SQL是不是有点问题啊 这几个条件不应该是or的关系吧,换成and,这样才有意义啊,几个条件才能同时起作用

SELECT userid, name ,callsign,cnName,IMO FROM TBInfo where userid like 'liy%' and namelike 'liy%' and callsignlike 'liy%'  and cnName like 'liy%' and IMO like 'liy%'
zoffor 2012-12-08
  • 打赏
  • 举报
回复
建了索引吗 建了索引吗

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧