mysql 关键词 模糊查询 若干问题,求有经验的帮忙解答

body_1
  • 4
新手上路,请多包涵

前言:由于初学没有相关方面的经验,在做项目的时候碰到了一些问题一直没找到解决办法,希望各位不吝赐教,感谢!

现有php+mysql外贸项目,数据量大概在20-30万。
其中A表,有3个字段-----B表,有1个字段需要查询。
现在需要前端在搜索关键词方面查询俩表总共4个字段。

条件:这4个字段属于字符串字段,中英文和数字都有。
疑问:
1:这个数据量mysql本身就能顶住还是需要用到<span class="colour" style="color:rgb(51, 51, 51)">Elasticsearch之类的搜索框架?</span>
<span class="colour" style="color:rgb(51, 51, 51)">2:如果用到搜索框架,因为4个字段属于字符串字段,又是专业性比较强的多语言文字,分词会不会出现不精确的情况?</span>
<span class="colour" style="color:rgb(51, 51, 51)">3:如果不用分词,改用模糊搜索,是用mysql还是搜索框架?</span>
<span class="colour" style="color:rgb(51, 51, 51)">4:如果用mysql是多表多字段联合查询?还是单独建立个表来集合这四个字段的数据再来搜索?</span>

我不是伸手党,请大家给个思路或者建议供我研究,毕竟没有经验谢谢!

回复
阅读 432
3 个回答

1、二三十万的话,MySQL 还是可以顶住的,MySQL 也支持分词,当然,如果使用 es 更佳了。
2、使用 es 你可以自己创建分词器,不一定使用现有的中文分词。
3、都可以,但是 MySQL 会慢
4、均可,差别不是很大,不过你可以创建一个视图来集合这4个字段,不用单独创建表

推荐使用 es

几十万数据mysql还是可以的,只要你的sql不是一层层的嵌套就可以~
但是如果有时间研究的话,我还是建议你用es,因为es是真的很快,而且es对后期的扩展(日志等等)支持的都非常的好

用不用es取决两个方面,一个是业务的数据增长速度,一个是TPS的需求。如果都不高,这个情况最快的方式就是mysql的like查询。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏