mysql 模糊查询 百万条就不行了?

手可摘星辰 2016-04-20 02:36:09
例子现在有两百多万条的用户,一堆搜索条件,member存储账户信息,member_person存储用户信息
要求模糊查询,两秒以内,like完全太慢,函数locate快些,但是也达不到要求

SELECT
m.*, mp.mid,
mp.zhiwu,
mp.xueke,
mp.danwei,
mp.uname,
mp.mobile,
mp.place,
mp.city,
mp.county
FROM
`cms_member` AS m
LEFT JOIN `cms_member_person` AS mp ON m.mid = mp.mid
WHERE
-- locate('2012', m.userid) > 0
-- MATCH (m.userid) AGAINST ('好好分数');
m.userid in ('小')
ORDER BY
m.logintime DESC

求解决两秒以内
...全文
825 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhu19774279 2016-04-20
  • 打赏
  • 举报
回复
solr可以用代码触发同步,插入或删除数据的时候同步到solr就不会有延迟。不过我们没有试过高并发的情况反复触发同步会怎样。
手可摘星辰 2016-04-20
  • 打赏
  • 举报
回复
引用 4 楼 ACMAIN_CHM 的回复:
只有全文索引了。楼主不是已经全长 match 了吗? 有没有创建全文索引?
说一下现在的情况 1、有solr服务器也实现了这个检索但是有一个小时的延迟 2、就是把like换成正则或者是自定义函数 3、就是全文索引,测试的时候建了全文索引,但是好多东西搜不出来,因为人家搜的是用户名,太不精准了 其实有一个解决方案就好,实时检索,精准点,速度快
ACMAIN_CHM 2016-04-20
  • 打赏
  • 举报
回复
只有全文索引了。楼主不是已经全长 match 了吗? 有没有创建全文索引?
手可摘星辰 2016-04-20
  • 打赏
  • 举报
回复
引用 1 楼 u010587433 的回复:
可把执行计划贴出来,供大家参考
已发
手可摘星辰 2016-04-20
  • 打赏
  • 举报
回复
上海阿丽 2016-04-20
  • 打赏
  • 举报
回复
可把执行计划贴出来,供大家参考

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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