聊聊 ElasticSearch 使用场景
发表于|更新于
|浏览量:
- 全文搜索,这个是用的最多的。加上分词插件、拼音插件什么的可以做成强大的全文搜索引擎。
- 数据库,挺奇葩的用法,因为 ES 存数相同数据,更费空间,不过确实不错,因为他的强大统计分析汇总能力,再加上分布式 P2P 扩展能力,现在硬件又那么便宜,所以就有人拿来当数据库了。
- 在线统计分析引擎,日志系统,LogStash,不用解释了吧; 可以实时动态分析数据,很是爽。
文章作者: 烦恼多一点
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 非鱼小站!
相关推荐

2022-06-30
说说反模式设计
简单的来说,反模式是指在对经常面对的问题经常使用的低效,不良,或者有待优化的设计模式/方法。甚至,反模式也可以是一种错误的开发思想/理念。在这里我举一个最简单的例子:在面向对象设计/编程中,有一条很重要的原则, 单一责任原则(Single responsibility principle)。其中心思想就是对于一个模块,或者一个类来说,这个模块或者这个类应该只对系统/软件的一个功能负责,而且该责任应该被该类完全封装起来。当开发人员需要修改系统的某个功能,这个模块/类是最主要的修改地方。相对应的一个反模式就是上帝类(God Class),通常来说,这个类里面控制了很多其他的类,同时也依赖其他很多类。整个类不光负责自己的主要单一功能,而且还负责了其他很多功能,包括一些辅助功能。很多维护老程序的开发人员们可能都遇过这种类,一个类里有几千行的代码,有很多功能,但是责任不明确单一。单元测试程序也变复杂无比。维护/修改这个类的时间要远远超出其他类的时间。很多时候,形成这种情况并不是开发人员故意的。很多情况下主要是由于随着系统的年限,需...

2022-07-03
说说 SQL 优化之道
一些常见的 SQL 实践 负向条件查询不能使用索引 select from order where status!=0 and status!=1 not in/not exists # 都不是好习惯 可以优化为 in 查询: select from order where status in(2,3) 前导模糊查询不能使用索引 select from order where desc like '%XX' 而非前导模糊查询则可以: select from order where desc like 'XX%' 数据区分度不大的字段不宜使用索引 select from user where sex=1 原因:性别只有男,女,每次过滤掉的数据很少,不宜使用索引。 经验上,能过滤80%数据时就可以使用索引。对于订单状态,如果状态值很少,不宜使用索引,如果状态值很多,能够过滤大量数据,则应该建立索引。 在属性上进行计算不能命中索引 select from order where YEAR(date) < = ...

2022-07-09
聚集索引与非聚集索引的区别
聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个 聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续 聚集索引:物理存储按照索引排序;聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序 非聚集索引:物理存储不按照索引排序;非聚集索引则就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序. 索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。

2022-07-10
limit 20000 加载很慢怎么解决
MySQL 的性能低是因为数据库要去扫描 N + M 条记录,然后又要放弃之前 N 条记录,开销很大 解决思路: 前端加缓存,或者其他方式,减少落到库的查询操作,例如某些系统中数据在搜索引擎中有备份的,可以用 es 等进行搜索 使用延迟关联,即先通用 limit 得到需要数据的索引字段,然后再通过原表和索引字段关联获得需要数据 select a.* from a,(select id from table_1 where is_deleted='N' limit 100000,20) b where a.id = b.id 从业务上实现,不分页如此多,例如只能分页前 100 页,后面的不允许再查了 不使用 limit N,M, 而是使用 limit N,即将 offset 转化为 where 条件。

2022-07-08
为什么要用 B-Tree
一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘 I/O 消耗,相对于内存存取,I/O 存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘 I/O 操作次数的渐进复杂度。换句话说,索引的结构组织要尽量减少查找过程中磁盘 I/O 的存取次数。

2022-07-12
ObjectId 规则
时间戳 机器码 PID 计数器 0,1,2,3 4,5,6 7,8 9,10,11 前四位是时间戳,可以提供秒级别的唯一性。 接下来三位是所在主机的唯一标识符,通常是机器主机名的散列值。 接下来两位是产生 ObjectId 的 PID,确保同一台机器上并发产生的 ObjectId 是唯一的。 前九位保证了同一秒钟不同机器的不同进程产生的 ObjectId 时唯一的。 最后三位是自增计数器,确保相同进程同一秒钟产生的 ObjectId 是唯一的。
评论
WalineDisqus
公告
This is my Blog







