mysql 如何进行快速的昵称搜索模糊查询

WBOY
发布: 2016-09-21 14:13:05
原创
1092 人浏览过

mysql 进行昵称搜索模糊查询,如果用户多了 like 查询会很慢,请问如何解决?

回复内容:

mysql 进行昵称搜索模糊查询,如果用户多了 like 查询会很慢,请问如何解决?

  1. 在数据库的此表中的昵称这个字段建立索引

    key `nikename`(`nikename`)

  2. 全文索引配合sql语句

    ALTER TABLE `user` ADD FULLTEXT `fidx_user_nikename` (`nickname`)

然后用以下方式查询

<code>SELECT * FROM \`user\` WHERE MATCH (nickname)AGAINST ('xxx')</code>
登录后复制

如果是like %name%,那在我的认知范围内是没辙了,如果前边没有%可以建索引,或者试试LOCATE函数,不过估计没啥效果。

instr呢?

模糊搜索的话,上分词吧。sphinx coreseek 或者xunsearch(迅搜)

如果你的mysql版本大于5.7, 自带ngram全文索引支持中文分词,我在项目中已用,用法网上已经有教程了

使用搜索引擎,把常用搜索的字段索引起来,然后在结合缓存一起使用

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!