发布网友 发布时间:2022-04-22 22:55
共2个回答
热心网友 时间:2022-04-07 16:37
首先要说的是创建索引会提高搜索速度
再就是 like 不会使用索引,结果就是你创建了索引但是找不到结果,这个和union没有关系
即使你单独一条查询也是遍历整个数据库,不会在索引中查询
对于这种情况一般都是通过分词创建文件索引的方式进行文字查询 如 lucene
现在的数据量,想要通过sql解决文字的like查询,通过数据库已经不够用的了~追问多谢你的回答,我以上提的问题,Mysql有没有其它解决办法?表可多个,要联合查询,或者只能用分区表来做吗?还是像一个朋友说的 运用hash算法对同样结构的表进行计算分类后存入新表?
追答不论你怎么分表 只要使用like 索引就不会起作用 最后的结果还是所有的数据都要遍历一遍
你可以看看 Mysql+sphinx 做的搜索,对于大数据量的查询使用比较多
单独使用数据库很难,我找过通过创建mysql分词索引的方式搜索数据,结果会丢失很多数据,结果也不准确,毕竟查询还是以准确为第一位的
你可以看看京东或者当当之类的,你输入了一个字他会自动匹配出结果数和数据量,这个就是分词索引的结果
热心网友 时间:2022-04-07 17:55
我也遇到相同的问题,我的环境是MS SQL
greateast@qq.com