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对其进行操作


12f945bd726b4cd5b1cc4ed3824169a5.png


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

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


Elasticsearch 如何安全加固


现在我们来看一下他们的查询速度如何

在数据量一致的情况下我们看到mysql的执行时间为33毫秒


04c0f794fb924022b6356a4b131316f3.png


同意是在es中查询23条数据,我们可以看到速度是5毫秒!


速度整整提升了6倍!!

1e54c4068f15423ab48a9048d3939758.png

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


you know ,for search

但是我们我们要知道mysql是关系型数据库,es是非关系型数据库,所以二者还是有很大的差别,各自有各自的场景,所以大家根据实际的情况去取舍即可

如果你不知道他们的安装,可以参考我的教程:

Linux安装ElasticSearch以及Ik分词器(图文解说详细版)

Linux安装Mysql5.7(图文解说详细版)

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
关系型数据库 MySQL API
MySQL 历史数据迁移到 Elasticsearch
MySQL 历史数据迁移到 Elasticsearch
691 4
|
消息中间件 监控 关系型数据库
MySQL数据实时同步到Elasticsearch:技术深度解析与实践分享
在当今的数据驱动时代,实时数据同步成为许多应用系统的核心需求之一。MySQL作为关系型数据库的代表,以其强大的事务处理能力和数据完整性保障,广泛应用于各种业务场景中。然而,随着数据量的增长和查询复杂度的提升,单一依赖MySQL进行高效的数据检索和分析变得日益困难。这时,Elasticsearch(简称ES)以其卓越的搜索性能、灵活的数据模式以及强大的可扩展性,成为处理复杂查询需求的理想选择。本文将深入探讨MySQL数据实时同步到Elasticsearch的技术实现与最佳实践。
842 1
|
Kubernetes 关系型数据库 MySQL
实时计算 Flink版产品使用合集之在Kubernetes(k8s)中同步MySQL变更到Elasticsearch该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
存储 关系型数据库 MySQL
【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件
【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件
516 0
|
消息中间件 存储 关系型数据库
【微服务】mysql + elasticsearch数据双写设计与实现
【微服务】mysql + elasticsearch数据双写设计与实现
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之源MySQL表新增字段后,要同步这个改变到Elasticsearch的步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
624 158
|
11月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1655 152

推荐镜像

更多