我有100万条企业名称,如果用 like %企业名称% 来查询不走索引特别慢,集群的效果也不明显,大佬们有什么好办法吗?

jwxkk 2019-01-03 04:36:23
问个问题,我有100万条企业名称,如果用 like %企业名称% 来查询,是不走索引的。查询一次需要耗时5-7秒。 如果用了全文检索引擎,出现查询结果不完全的情况,因为全文检索引擎是自动分拆单词的。 例如 北京天安门,查询京天 就查询不到。

使用mycat和hadoop后,速度提升到2秒左右,但是在50并发下,不走索引,时间也超过了40秒。

这个还有解吗?
...全文
682 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2019-05-15
  • 打赏
  • 举报
回复
您这里LIKE企业名,企业名应该是有字典表之类的东西吧,能不能单独加一个字段,存储企业名,最好是存企业ID,然后直接等号查询。
吉普赛的歌 2019-05-14
  • 打赏
  • 举报
回复
引用 6 楼 Zerolone 的回复:
[quote=引用 5 楼 吉普赛的歌 的回复:] [quote=引用 4 楼 Zerolone 的回复:] 楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
不要信口开河, 试过了再说。 DBA 很多东西是试出来的, 不是想出来的[/quote]
引用 5 楼 吉普赛的歌 的回复:
[quote=引用 4 楼 Zerolone 的回复:] 楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
不要信口开河, 试过了再说。 DBA 很多东西是试出来的, 不是想出来的[/quote] 我是试过的, 用like就是慢, 100w数据, [/quote] 你要用我的代码试, 而不是用你的办法。
Zerolone 2019-05-13
  • 打赏
  • 举报
回复
引用 5 楼 吉普赛的歌 的回复:
[quote=引用 4 楼 Zerolone 的回复:] 楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
不要信口开河, 试过了再说。 DBA 很多东西是试出来的, 不是想出来的[/quote]
引用 5 楼 吉普赛的歌 的回复:
[quote=引用 4 楼 Zerolone 的回复:] 楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
不要信口开河, 试过了再说。 DBA 很多东西是试出来的, 不是想出来的[/quote] 我是试过的, 用like就是慢, 100w数据,
济南大飞哥 2019-05-13
  • 打赏
  • 举报
回复
搜索引擎吧,虽是简单应用一下,还能装装逼,加加工资。
吉普赛的歌 2019-01-14
  • 打赏
  • 举报
回复
引用 4 楼 Zerolone 的回复:
楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
不要信口开河, 试过了再说。 DBA 很多东西是试出来的, 不是想出来的
Zerolone 2019-01-14
  • 打赏
  • 举报
回复
楼上的方法,肯定还是慢的, 还是要上全文检索。 我推荐sphinx
吉普赛的歌 2019-01-05
  • 打赏
  • 举报
回复
100万数据不算很大, 尽可能把 名称字段的长度改小(比如实际最大只有50位长度,那就设置为80) 再按下面的做法试下:
#1. 创建临时表
CREATE TEMPORARY TABLE tmp (id bigint primary key);

#2. 将相关数据的主键插入到临时表中, 
insert into tmp(id)
select id from tb where theName like '%企业名称%';

#3. 查询得到实际的结果
select * from tb as a inner join tmp as b on a.id=b.id;

#4. 删除临时表
drop TEMPORARY table tmp;
当然, 最好的做法还是 ES.
小小帅气码农 2019-01-05
  • 打赏
  • 举报
回复
建议采用es做,底层的倒序索引可以解决模糊搜索的问题,需要搭建服务器即可,网上有很多es的教程,es建立良好的索引性能肯定是翻倍的。数据库中的内容依据场景同步到es中即可。
二月十六 2019-01-04
  • 打赏
  • 举报
回复
用这种方式,like 企业名称% 可以使用索引,但不知道符不符合需求;
或者使用LOCATE(关键字,字段名称)>0,试试速度怎么样

56,679

社区成员

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

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