ElasticSearch对标Mysql,谁能拔得头筹?

首先我们要知道的一点就是Mysql是使用C和C++开发的,而elasticsearch是用java语言开发的。
他们其实都含有存储数据的功能,所以我们可以理解他们都是一个数据库。

由于早期原因,很多数据库厂商都借鉴了关系形数据库的模式,也就是库到表到字段,所以在早期的es中(5.X)他们对应的关系是这样的:

Elasticsearch: index   -->  type  -->   doc   -->  field

MySQL:          数据库   -->  数据表 -->-->

但是到了7.X之后就彻底废除了type,具体的原因可以参考
Elasticsearch 为何要在 7.X版本中 去除type 的概念

所以5.x之后添加数据都是用以下的方式进行添加

POST index/_doc

没错,我们可以直接使用postman对其进行操作
在这里插入图片描述

这样就大大加深了可操作性,因为我们操作数据库都是使用sql去进行操作的,这使得我们在编写代码的时候都要使用类似于java的JDBC技术去连接数据库,而我们在操作es的时候可以直接通过http请求去调用es的api,这使得他们与代码之间的自由度也就更高。

但是这样也带来了很多的弊端,就是会导致你存储在es中的数据并不安全,任何人在不知道账号和密码的前提下都能操控你的es,甚至可以直接删库!!所以安全成了一个很大的问题:

Elasticsearch 如何安全加固

现在我们来看一下他们的查询速度如何
在数据量一致的情况下我们看到mysql的执行时间为33毫秒
在这里插入图片描述
同意是在es中查询23条数据,我们可以看到速度是5毫秒!
在这里插入图片描述
速度整整提升了6倍!!

这里就要归根于他们的底层索引结构了,es的底层索引结构是倒序索引,而Mysql中innoDB底层使用的是B+索引,所以这就决定了这两个的底层搜索方式就不同,这也印证了es确实是为了搜索而生的口号:

you know ,for search

但是我们我们要知道mysql是关系型数据库,es是非关系型数据库,所以二者还是有很大的差别,各自有各自的场景,所以大家根据实际的情况去取舍即可
如果你不知道他们的安装,可以参考我的教程:
Linux安装ElasticSearch以及Ik分词器(图文解说详细版)
Linux安装Mysql5.7(图文解说详细版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉头发的王富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值