码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ElasticSearch - 基础概念,以及和 mysql 的对比


    目录

    一、ElasticSearch 基础概念

    1.1、文档(document)

    1.2、索引(index)

    1.3、映射(mapping)

    二、对比 mysql

    2.1、概念对比

    2.2、适用场景对比

    2.2.1、那是不是说,有了 es 之后,就可以完全替代我们的 mysql 了呢?

    2.2.2、他们两之间有什么关系


    一、ElasticSearch 基础概念


    1.1、文档(document)

    elasticsearch 是面向文档存储的,可以是数据库中的一条商品数据,也可以是订单数据...  这些东西都会被序列化成 json 的格式,存储在 es 中.

    比如前面提到的商品表,里面有 id 、title 、price 这些数据,最后都会被序列化成 json 的格式进行存储.

    1.2、索引(index)

    索引就是相同类型文档的集合。这就相当于是 MySQL 中的表一样,而文档就是表中的每一行数据.

    1.3、映射(mapping)

    这里的映射就是对文档字段的约束,比如你的字段名字是什么,数据类型是字符串,还是数字啊. 这就类似于 mysql 中的约束一样.

    Ps:所以这我们不难看出,这里 es 的概念和 mysql 之间有一些相似关系,下面我们就来对比一下.

    二、对比 mysql


    2.1、概念对比

    一下数据,第一列为 mysql 、第二列为 es.

    • 表 => 索引:索引,就是文档的集合,类似于数据库中的表.
    • 行 => 文档:文档,就是一条条数据,类似数据库中的每一行数据,但是文档的格式是 json 格式.
    • 列 => 字段:字段,就是 json 文档中的字段,类似于数据库中的列.
    • 约束 => 映射:映射是索引中文档的约束,例如字段类型约束(数据类型).类似于数据库中的表结构.
    • SQL => DSL:DSL 是 es 中提供的 json 风格的请求语句,用来操作 es,实现 CRUD.

    2.2、适用场景对比

    2.2.1、那是不是说,有了 es 之后,就可以完全替代我们的 mysql 了呢?

    并不可以啊,因为他们两擅长的事情是不一样的~~

    • mysql:更擅长的是事务的操作,事务里面有原子性、持久性、一致性、隔离性这些,因此可以保证数据的安全性、持久化存储、数据一致. 
    • es:es 中就没有事务的概念了,他更擅长的数据的搜索分析和运算.

    例如,现在要做一个下单付款这样的业务,对事务的要求很高,因此就应该使用 mysql 去存储;如果你先在做到是一个商品搜索,或者是页面搜索,这种搜索比较复杂(比如用户通过关键词搜索所有相关信息),那么就需要使用 es 去做.

    2.2.2、他们两之间有什么关系

    他们在系统架构中是一种互补的关系,比如我们的用户做一个商品订单的搜索,因为 es 的搜索能力更强,所以这里使用 es 进行搜索,那么也意味着,es 这边也要有数据,那怎么确保两边都有数据呢?一般写数据,是写在 mysql 中的(为了数据的安全性以及持久化等特性,mysql 用来存储全量数据),并且 mysql 也会将数据同步给 es,从而实现数据的双写,将来也就是一个互补的效果了.

     

  • 相关阅读:
    SwiftUI 中的水平条形图
    Redis-SpringBoot实战与缓存问题
    Java项目:律师事务所律师管理系统(java+SSM+HTML+JS+jsp+mysql)
    案例分析背诵点
    每日刷题|回溯法解决全排列问题
    洛谷P2412 查单词
    MySQL 高级(进阶) SQL 语句 (一)
    插卡4G工业路由器充电桩智能柜专网视频监控4G转以太网转WiFi有线网速测试 软硬件定制
    解锁 zkSync Era:开创全新的 Layer 2 扩展时代
    BA-NeRF ICCV 2021
  • 原文地址:https://blog.csdn.net/CYK_byte/article/details/133214045
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号