开发者社区> 问答> 正文

大数据量下如何优化全数据模糊查询

需求:大数据量下进行模糊查询,会有条件

DB:Oracle

数据量 1亿++

主要数据为电信用户的家庭(标准)住址信息
eg:xx街道xxx小区xxx栋xxx号

在不调整数据库(软硬件)的情况下怎么,如何优化。
什么分表,分库,分布式数据库,就不讨论了。
目前采用了 Oracle 全文索引查询,但是速度依然很慢,有没有什么第三方工具/软件/方法能进行优化。
目前查询速度大约要20s左右,希望优化到3s内查询出结果。
目前的情况和下面说的情况差不多,用户的这个痛点就是我们公司的产品性能问题所致! " 呵呵,有次去电信营业厅办业务,看营业员在UI上选地址,真让人抓狂啊,必须选市,然后选区,再选街道,小区,线路编号,而且速度真的很慢,营业员选完了估计花了5分钟。当时他们的系统要是有20s的模糊查询,估计每天能多办1倍业务。 对oracle在这个层面上的优化不是很懂,地址的模糊查询中,最快的方式是把所有地址预先计算一个有向DAG,并编制索引。扯的远了,呵呵。 印象中,oracle的full text采用的二元词干法做分词的,这个分词技术不是很准确,还可以设置对每个“字”遍索引,还可以定期的优化全文索引。

展开
收起
小旋风柴进 2016-03-11 09:30:27 6086 0
2 条回答
写回答
取消 提交回答
  • 单纯从数据库的角度说,这个数据量的数据,一定需要拆表,如果不是在kw级的数量,即使建了索引,查询成本也是很高的。此外,按省市区这种的查询,最好的方法是把地址做拆分,然后省市区都建为独立字段。使用like或者全文检索的维护成本很高,对业务也没有太多帮助。

    2019-07-17 18:58:21
    赞同 展开评论 打赏
  • 这种数据量的模糊查询应该用全文检索来。直接使用lucene可能时间和代价太大,可以考虑solr4.*和elasticsearch,而且扩张也比较方便。

    2019-07-17 18:58:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载