账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Mysql 5.6 下如何对text类型字段的LIKE操作做优化
    • 2019-09-23 00:00
    • 10
    102
    0

    数据库版本 Mysql5.6.21

    表体量100万+

    目前有一个text类型字段,用like操作查询比较多。导致查询速度过慢。

    开始的设想是给该字段加一个fulltext索引,加了之后对英文的查询速度的确变快了。不过由于分词的原因,对中文的支持不好。百度后发现要使用一个ngram插件来支持中文。但是5.6不支持该插件。

    想问下,在不升级数据库的前提下,还有其他的优化方案吗?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 燧人氏的火 普通会员 1楼

      在MySQL 5.6中,可以使用BETWEEN运算符来对text类型字段的LIKE操作进行优化。这个运算符可以匹配文本字符串的范围,而不是简单的百分比匹配。

      以下是一个例子:

      sql SELECT column_name FROM table_name WHERE column_name LIKE 'text%';

      在这个例子中,column_name是要检查的text类型的字段的名称,table_name是要检查的表的名称,%是通配符,表示匹配任何字符。

      注意,这个操作符只会匹配完全匹配的文本字符串,不会匹配不完全匹配的文本字符串。如果你需要匹配不完全匹配的文本字符串,你可以使用ILIKE运算符。

      ILIKE运算符可以匹配任何字符,包括特殊字符。例如,如果你想匹配以'a'开头的文本字符串,你可以使用ILIKE 'a%'。

      sql SELECT column_name FROM table_name WHERE column_name LIKE 'a%';

      在MySQL 5.6中,BETWEEN运算符对于处理不完全匹配的文本字符串非常有用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部