es数据库主要干什么用_谈谈ES在数据应用中的作用

楔子

ES全名elasticsearch翻译过来是弹性搜索;从名字直观的了解,这个东西是解决搜搜的问题;

作为一个经常写SQL的人来说;搜索在我的映像中就是select * from table where,那为什么还要ES?

当数据变多时,原有方案开始变得糟糕

mysql对于一些较为固定,字段较少的查询方式,可以通过简单的增加索引来完成优化,在大多数公司,即使你对索引优化不熟悉,也有专门的dba来帮你完成一些简单的优化。甚至有些电商公司要求程序中不允许出现orm,必须用纯sql来完成业务逻辑,这样dba可以直接介入到代码中来。

不过到字段太多的时候这招就不灵了,字段越多,查询自然就越慢(比如单条记录可能都超过了4k什么,甚至有些oracle的表里,一个字段就有几兆信息,当然几兆信息的这种这里也解决不了,嗯)。

mysql表在普通查询过程中,比如select * from xxx limit 100w, 100;这种,小网站随便写sql,可能不会体会到翻页的痛。但你在一个单表3000w的系统中写了limit 10000000, 10。那数据库服务器就哭了。因为实际上数据库为了取出你想要的那几条数据,需要把所有的数据也就是10000010条都取到内存中,复杂一点的select再加上order by则可能会同时涉及到多次磁盘读取和文件排序。慢上加慢。

除此之外,现在最流行的innodb之类的存储引擎在计算count的时候非常的慢。当然了,网络上会有人从乱七八糟的文章里看到换myisam应该就会更快的结论,但这其实是错的。如果在select语句的where条件中也有表达式时,这两种

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值