首页 > 其他分享 >轻松搞懂数据一致性

轻松搞懂数据一致性

时间:2023-06-05 10:12:41浏览次数:34  
标签:范例 数据库 轻松 ScyllaDB SQL 一致性 搞懂 id Cassandra

让数据库研究再次伟大!!!

目录

  • 1.序言

  • 2.比MySQL有更多的可能性

  • 3.SQL 与 NoSQL

  • 4.明智地选择

  • 5.最酷的数据库范例

  • 6.最后的考虑

TL:DR 在这篇文章中,我将分享我在数据库学习课程中学到的知识,了解到目前为止让我着迷的数据库主题。

(更多优质教程:java567.com,搜"mysql")

1.序言

在 2022 年底,当主题是数据库时,我决定把事情弄清楚,因为这总是一种痛苦,作为后端开发人员,很高兴讨厌复杂的数据库查询。考虑到这一点,我挑战自己从头开始,为了好玩而了解这个未被充分探索的世界。

2.比MySQL有很多可能性

我没有完成大学学业,在那里时我没有看到任何关于数据库的东西,所以我没有任何理论背景,在这 4 年的企业级编码中,我的重点完全在于:Clean Code, SOLID、 设计模式 和其他与代码相关的东西,而我唯一的数据库知识是关于 SQL/MySQL 和 缓存/ Redis的。

在前五分钟谷歌搜索东西,在 Twitter 上询问内容推荐,我刚刚登陆了这个名为 “7 个数据库范例”的视频 ,这让我大吃一惊。就像,除了键值和关系之外?瓦特

以下是范例列表和各自的具体实现:

  • 键值: Redis

  • 宽栏: Apache Cassandra、 ScyllaDB 和 DynamoDB

  • 文档: MongoDB

  • 图: Neo4J

  • 关系型: MySQL、 MariaDB、 PostgreSQL

  • 搜索引擎: 弹性搜索

  • 多模型: FaunaDB、 MongoDB、 Redis 等。

3. SQL 与 NoSQL

因为我们正在尝试迎接一个新的挑战,我的主要重点是脱离我觉得舒服的一切,研究我以前没见过的东西,它包括我在 NodeJS 世界中经常听到的 这个 词: 诺斯克。

我知道 MySQL、OracleDB、SQLServer 使用 SQL(结构化查询语言),但我从未试图理解为什么会有这样的“反向 SQL”或“反 SQL”,所以我首先深入了解它们的区别:

 // Structured
 table: users
 id: int
 name: string
 ​
 table: user_addresses
 id: int
 user_id: int references id in users
 address: string
 ​
 table: users
 --------------------
 | id | name       |
 | 1 | danielhe4rt |
 --------------------
 ​
 table: user_addresses
 ---------------------------------------------------------
 | id | user_id | address                               |
 | 1 | 1     | Flowers St. 123, São Paulo/SP - Brazil |
 ---------------------------------------------------------

 

SQL 由以下因素驱动:表、行和列

 // database-prod.json
 {
    "users": [
        "huid2d12bdh12b": {
            "id": 1,
            "name": "danielhe4rt",
            "addresses": [
                "jio32fsdyhis": {
                    "address": "Flowers St. 123, São Paulo/SP - Brazil"
                }
            ]
        }
    ]
 }

 

NoSQL 由以下因素驱动:文档、集合和字段。

引起我注意的是 NoSQL 如何有大量很酷的特性需要研究,因为我们有键值、文档、宽列作为研究选项。

我选择 Wide Column Database 来继续深入研究,因为我发现有两个很酷的主题,即我想研究的 复制因子一致性级别 ,但首先我们需要谈谈 CAP 定理。

4.明智地选择

基于数据库的CAP定理

https://res.cloudinary.com/practicaldev/image/fetch/s--RHyAcE9K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://i.imgur.com/IIkBICD.png

一些名叫 Eric Brewer 的坏蛋认为分布式数据存储只能提供这 3 种保证中的 2 种:一致性、可用性和分区容错性。好吧,如果你足够合理,你可以拥有所有这些,但这是另一篇文章的主题。

好的,但是这些项目的含义是什么?比如,我为什么要关心这个?定理是不是一些数学上枯燥的东西?不,请在那个 PLZ 上跟我来!!!正如我所说,我们需要理解这些支柱:

  • 可用性:您在不同的节点中拥有数据,如果其中几个节点发生故障,您应该仍然可以使用数据。

  • 一致性:你更新了一些数据,但不能保证这是最近的写入,因为复制操作没有在其他数据中心完成,但它可以使用 Consistency Level进行配置。

  • Partition Tolerance:如果副本/节点之间的通信出现任何故障,我可以继续操作吗?

在这一点上,我们已经有很多概念需要理解并继续在我们的旅程中磨砺,但现在我们将看到最后一步以及我想写这篇文章的原因:宽列数据库范式!

5. 最酷的数据库范例

标签:范例,数据库,轻松,ScyllaDB,SQL,一致性,搞懂,id,Cassandra
From: https://www.cnblogs.com/web-666/p/17457100.html

相关文章

  • 一致性hash算法 - consistent hashing
    评:consistenthashing算法早在1997年就在论文Consistenthashingandrandomtrees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方......
  • 使用MD5验证传输文件的完整性和一致性
    在发布更新的时候验证资源完整性是非常重要的,这里我区分为两种,一种是更新资源的完整性,另外一种是远程执行发布任务脚本的一致性,在开发前期如果不注重这个问题的话,很可能在上线前期就会出现一些灾难性问题。第一种,shell中使用md5sum验证传输文件的完整性这个我是用shell中md5sum来做......
  • 谈谈一致性哈希算法
    一致性哈希算法是1997年由麻省理工的几位学者提出的用于解决分布式缓存中的热点问题。大家有没有发现,我们之前介绍的例如快排之类的算法是更早的六七十年代,此时分布式还没有发展起来,大家往往还在提高单机性能。但是九十年代开始,逐渐需要用分布式集群来解决大型问题,相应的算法研究......
  • 用Java爬虫轻松抓取网页数据
    Java爬虫可以自动化地从互联网上采集各种数据,可以帮助企业分析竞争对手的网页排名,优化自己的网站,提高搜索引擎排名。那么如何开始爬虫呢?Java爬虫的具体步骤如下:1、确定爬取目标确定需要爬取的网站、页面和数据。2、分析网页结构通过浏览器开发者工具或者其他工具,分析目标网站......
  • 实战:实现缓存和数据库一致性方案
    哈喽大家好,我是阿Q!最近不是正好在研究canal嘛,刚巧前两天看了一篇关于解决缓存与数据库一致性问题的文章,里边提到了一种解决方案是结合canal来操作的,所以阿Q就想趁热打铁,手动来实现一下。架构文中提到的思想是:采用先更新数据库,后删除缓存的方式来解决并发引发的一致性问题;采用异......
  • DHVT:小数据集也能轻松训练!缩小VIT与CNN鸿沟,解决从零开始的训练难题
    前言 VIT在归纳偏置方面存在空间相关性和信道表示的多样性两大缺陷。所以论文提出了动态混合视觉变压器(DHVT)来增强这两种感应偏差。在空间方面,采用混合结构,将卷积集成到补丁嵌入和多层感知器模块中,迫使模型捕获令牌特征及其相邻特征。在信道方面,引入了MLP中的动态特征聚合模块......
  • 别再满屏找日志了!推荐一款 IDEA 日志管理插件,看日志轻松多了!
    1.简介GrepConsole是一款方便开发者对idea控制台输出日志进行个性化管理的插件。2.功能特性GrepConsole的主要功能特性:支持自定义规则来过滤日志信息;支持不同级别的日志的输出样式的个性化配置;总结:通过过滤功能、输出日志样式配置功能,可以更方便开发者在大量的日志信......
  • 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(下)
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"或慕课网公众号!作者:大能|慕课网讲师上篇文章,我们介绍了ZooKeeper集群保证数据一致性和Zookeeper集群Leader选举,这边文章我们接着介绍ZAB协议和Paxos算法ZAB协议在ZooKeeper在处理事务型请求的时候有提到......
  • 基于学习的第三代测序一致性序列生成
    基于学习的第三代测序一致性序列生成王水介哈尔滨工业大学摘要:继人类基因组计划开展以来,基因测序已经广泛影响了生命科学的研究方式,各模式物种基因组在全球实验室不断被测定分析。近年来随着基因组测序数据通量的提升和成本的下降,这已成为生物医学领域的常规手段。目前以......
  • 武汉星起航:亚马逊卖家优化产品Listing,轻松提升产品排名
    在竞争激烈的亚马逊市场中,卖家们都希望能够提高产品的排名,获得更多的曝光和销售机会。而优化产品的Listing是实现这一目标的关键步骤。武汉星起航在这里提供了一些亚马逊卖家有效的优化技巧,让他们的产品在激烈的竞争中脱颖而出。首先,关键词是优化产品Listing的重要元素。在撰写产品......