大家午安
目前也是遇到 like '%关键字%' 效能会变差的问题
网站的商品数 超过一百万笔
网站的使用族群 是所有消费者
透过关键字 来模糊搜寻商品名称 甚至是二个以上的关键字来搜寻
( 商品名称 like '%关键字A%' or 商品名称 like '%关键字B%' )
测试过时间 需要 2 ~ 2.4秒左右
爬文了 也google过 了解如果把%放在前头 会让索引无效
我也自己试了一下 '关键字%' 时间0.0005秒 (也差太多了....)
但是关键字搜寻 不太可能用 like '关键字%'找资料
用其他的语法 locate试了一下 也是很慢
想请问大家 在语法的部分 目前还没办法解决吗?
※ 引述《DarkKiller (System hacked)》之铭言:
: ※ 引述《statue (statue)》之铭言:
: : AND Name1 LIKE '%怒气药水%'
: : Name1 是 varchar(255) utf-8 编码的字段.
: : 这样子查询的结果会比对 WIDB 整个表格, 像是资料有 22179 就会比对这么多次.
: MySQL 的 %...% 一定是 table scan,如果资料是拉丁语系资料,用 MySQL
: 提供的 fulltext index 做。
: 如果是 CJK 用专门的 fulltext search engine 做,像 Lucene (或 CLucene),
: 另外还需要了解一些目前切词常用到的基础原理。
: ==
: 另外我自己帮 pixnet 架的是 Xapian,目前已经在内部测试了...