mysql怎么高效率地检索某段字符,like和全文检索都不行

MySql 码拜 7年前 (2014-04-27) 559次浏览 0个评论

原帖http://bbs.csdn.net/topics/391003530在高性能数据库专区,放了两天没人能解。
回答出来者,此贴加上原帖分数全部送上。

注:请移步至原帖回复,谢谢。

20分
首先,关系型数据库对于sql中的%%无法利用索引进行检索,这是事实。

这个需求,不才用全文检索的话,就应该采用luence、solr这种专门的搜索引擎开源工具才能实现,或者你采用mongodb来存储这样也比关系型数据库效率高的。

引用 1 楼 mchdba 的回复:

首先,关系型数据库对于sql中的%%无法利用索引进行检索,这是事实。

这个需求,不才用全文检索的话,就应该采用luence、solr这种专门的搜索引擎开源工具才能实现,或者你采用mongodb来存储这样也比关系型数据库效率高的。

非常感谢。这是我到目前为止收到的最好的回复!
有两个问题
1.全文索引可行吗
全文索引是索引单词的,我这里的字段是一连串字符连在一起,中间没有逗号,如题目中所说的””US2009484321A””、””US2009485222A””,””US2003617086A””,如果采用全文索引
select * from tablewhere match(chaxunhao) against(‘2009’);去查,返回结果会是空。
2.您说的luence或者solr搜索引擎可以解决以上问题吗
luence或者solr搜索引擎,假如我查找‘2009’,他们能够在快速在二十多万的””US2009484321A””、””US2009485222A””,””US2003617086A””之类的数据中,查找到””US2009485222A””吗
谢谢!

引用 2 楼 hzy38324 的回复:
Quote: 引用 1 楼 mchdba 的回复:

首先,关系型数据库对于sql中的%%无法利用索引进行检索,这是事实。

这个需求,不才用全文检索的话,就应该采用luence、solr这种专门的搜索引擎开源工具才能实现,或者你采用mongodb来存储这样也比关系型数据库效率高的。

非常感谢。这是我到目前为止收到的最好的回复!
有两个问题
1.全文索引可行吗
全文索引是索引单词的,我这里的字段是一连串字符连在一起,中间没有逗号,如题目中所说的””US2009484321A””、””US2009485222A””,””US2003617086A””,如果采用全文索引
select * from tablewhere match(chaxunhao) against(‘2009’);去查,返回结果会是空。
2.您说的luence或者solr搜索引擎可以解决以上问题吗
luence或者solr搜索引擎,假如我查找‘2009’,他们能够在快速在二十多万的””US2009484321A””、””US2009485222A””,””US2003617086A””之类的数据中,查找到””US2009485222A””吗
谢谢!

luence以及solr能实现你的要求的。

引用 3 楼 mchdba 的回复:
Quote: 引用 2 楼 hzy38324 的回复:
Quote: 引用 1 楼 mchdba 的回复:

首先,关系型数据库对于sql中的%%无法利用索引进行检索,这是事实。

这个需求,不才用全文检索的话,就应该采用luence、solr这种专门的搜索引擎开源工具才能实现,或者你采用mongodb来存储这样也比关系型数据库效率高的。

非常感谢。这是我到目前为止收到的最好的回复!
有两个问题
1.全文索引可行吗
全文索引是索引单词的,我这里的字段是一连串字符连在一起,中间没有逗号,如题目中所说的””US2009484321A””、””US2009485222A””,””US2003617086A””,如果采用全文索引
select * from tablewhere match(chaxunhao) against(‘2009’);去查,返回结果会是空。
2.您说的luence或者solr搜索引擎可以解决以上问题吗
luence或者solr搜索引擎,假如我查找‘2009’,他们能够在快速在二十多万的””US2009484321A””、””US2009485222A””,””US2003617086A””之类的数据中,查找到””US2009485222A””吗
谢谢!

luence以及solr能实现你的要求的。

大哥,我自己发现了一个方法,可以解决这个问题
使用覆盖索引
具体方法见
http://blog.csdn.net/hzy38324/article/details/44857721
不管怎样,还是谢谢你的启迪!分给你啦!

好吧,这个帖子最后是被我自己解决了。
方法是覆盖索引
具体方法见
http://blog.csdn.net/hzy38324/article/details/44857721
引用 5 楼 hzy38324 的回复:

好吧,这个帖子最后是被我自己解决了。
方法是覆盖索引
具体方法见
http://blog.csdn.net/hzy38324/article/details/44857721

自己解决了就好啊。

你给的解决你的问题的blog地址打不开,报错如下
http://bbs.csdn.net/topics/391004375?page=1
没找到该页面,如果有问题请与管理员联系 Email:blog@csdn.net

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql怎么高效率地检索某段字符,like和全文检索都不行
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!