zoukankan      html  css  js  c++  java
  • ES查询优化

    1、上图

    2、存入数据筛选

    假如你向这台机器写入了300G的数据,那么就有270G左右的数据再磁盘。

    比如es存储要1T,那么你的多台机器留给os cache的内存总和要有512G以上。
     
    所以对存储在es中的数据进行筛选,比如就写入es id,name,age,然后其他的数据存储再hbase或者mysql中。
     
    hbase适用海量数据的在线存储。
     
    流程:
    1、es根据name或者age搜索,拿到20个doc id
    2、根据doc id到hbase中查询具体数据
     
    你最好写入es的数据大小 <= filesystem cache(os cache)总和
     

    3、数据预热

    假如按照上面的操作,es的数据还是超过了systemfile cache,那么就可以进行数据预热。比如将最多查看的商品,提前后台搞个程序,每隔1分钟访问一次,将它刷到os cache中

    4、冷热分离

    将冷数据写一个索引,热数据写一个索引

    假设六台机器,那么三台机器放热数据,热数据可能只占10%,那么访问热数据就能保持在os cache

    5、Document设计

    少用es的复杂查询语法,可以在插入的时候就将数据组装好

    6、分页优化

    1、不允许深度翻页、或者默认深度翻页性能好差
    2、如果类似微博下拉,可以使用scroll api(一次性生成快照,翻页通过游标移动),scroll api只能一页页翻,不能随意乱跳
  • 相关阅读:
    八数码难题 (codevs 1225)题解
    小木棍 (codevs 3498)题解
    sliding windows (poj 2823) 题解
    集合删数 (vijos 1545) 题解
    合并果子 (codevs 1063) 题解
    等价表达式 (codevs 1107)题解
    生理周期 (poj 1006) 题解
    区间 (vijos 1439) 题解
    区间覆盖问题 题解
    种树 (codevs 1653) 题解
  • 原文地址:https://www.cnblogs.com/TripL/p/13520640.html
Copyright © 2011-2022 走看看