栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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(图文解说详细版)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721586.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号