非关系型数据库、关系型数据库mysql简介

2023-11-12

Nosql 非关系数据库

数据存储不需要固定的模式

在这里插入图片描述

NoSql特点

  • 易扩展(数据之间无关系)
  • 大数据量高性能(细粒度,cache性能高)
  • 多样灵活的数据模型(增删字段容易)

关系数据库 vs NoSql

传统关系数据库:
ACID
事务所具有的四个特性: 一致性、原子性、隔离性、持久性
在这里插入图片描述
上面图片内容参考https://www.jianshu.com/p/50543887d694

非关系数据库

CAP

CAP理论由Eric Brewer在2000年作为猜想提出,并在2002年由Seth Gilbert和Nancy Lynch证明了其正确性。CAP理论的内容为:

在分布式系统中,不可能同时满足一致性(consistency)、可用性(availability)、分区容错性(partition tolerance)三大特征,最多只能同时满足其中二者。
在这里插入图片描述

CAP3选2

分布式系统分区容错性必须要保证,而在一致性和可用性之间做出权衡。
在这里插入图片描述

  • CP HBase
  • AP redis、mongodb (消息订阅,发微博)

BASE理论

BASE是对CAP一致性和可用性权衡的结果.

BASE理论由Dan Prichett在2008年藉由论文《BASE:An ACID Alternative》提出。它是三个词组的首字母缩写,即:

MYSQL

介绍

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。为提高速度和可靠性而设计的,但要以完全遵守标准SQL为代价.

优点

1.受欢迎程度和易用性:拥有使用MySQL经验的数据库管理员多;对于如何安装和管理MySQL数据库,有在线文档以及许多旨在简化数据库入门过程的第三方工具。
2.安全性:与SQLite不同,MySQL支持用户管理,并允许逐个用户授予访问权限。
3.速度:通过选择不实现SQL的某些功能,MySQL开发人员可以优先考虑速度。
4.复制:MySQL支持许多不同类型的复制,这是在两个或多个主机之间共享信息的实践,以帮助提高可靠性,可用性和容错能力。这对于设置数据库备份解决方案或横向扩展数据库很有帮助。

缺点

1.已知局限性:由于MySQL是为了提高速度和易用性而不是完全符合SQL的要求而设计的,因此它具有某些功能局限性。例如,它不支持FULL JOIN子句。
2.许可和专有功能:MySQL是双重许可的软件,具有根据GPLv2许可的免费开源社区版本,以及根据专有许可发行的若干付费商业版本。因此,某些功能和插件仅适用于专有版本。
3.开发速度缓慢

适用环境

1.分布式操作:MySQL的复制支持使其成为分布式数据库设置(例如主从或主从体系结构)的理想选择。
2.网站和Web应用程序:MySQL在Internet上为许多网站和应用程序提供支持。这在很大程度上要归功于安装和设置MySQL数据库的简易性,以及长期来看的总体速度和可伸缩性。
3.预期的未来增长:MySQL的复制支持可以帮助促进水平扩展。另外,升级到商业MySQL产品(例如支持自动分片的另一种水平扩展过程MySQL Cluster)的过程相对简单。

不适用环境

1.必须遵守SQL:由于MySQL不会尝试实现完整的SQL标准,因此此工具不完全符合SQL。如果对于您的用例来说,必须完全或什至几乎完全符合SQL要求,则可能要使用更完全兼容的DBMS。
2.并发性和大数据量:尽管MySQL通常在重读操作中表现良好,但并发读写可能会出现问题。如果您的应用程序将有许多用户一次向其写入数据,则另一个PostgreSQL之类的RDBMS可能是更好的数据库选择。

数据库引擎

  • InnoDB 支持事务,支持行锁和表锁用的比较多事物完整性较高,适用于频繁更新和删除
  • MyISAM不支持事务,只支持表锁。提供高速存储和检索

支持的数据类型

MySQL的数据类型可以分为三大类:数字类型,日期和时间类型以及字符串类型。

优化

执行计划explain

看索引是否用上

最左前置原则

(创建多列索引时,使用最频繁意向放在最左边)
article表如下;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
type:

  • system 表中只有一条数据
  • const针对主键或唯一所以等值扫描,最多只返回一条数据
  • ref 通常出现在join查询,针对非唯一或非主键索引,或者使用最左前缀规则索引的查询
  • range
    在这里插入图片描述
    在这里插入图片描述
    extra
    using index:覆盖索引扫描
    在这里插入图片描述

using temporary
using filesort(order by后面的字段顺序和索引中的不符合,则会产生)
在这里插入图片描述

慢查询

show variables like '%slow_query%'去查看是否开启慢查询日志功能
在这里插入图片描述
开启慢查询日志,sql执行时间超过该值就会被记录

show profile查看SQL执行时的资源使用情况

在这里插入图片描述
在这里插入图片描述

索引的实现通常使用 B 树及其变种 B+树

linux系统上
基础操作命令:

  • 开启或停止 MySQL 服务 :运行命令 service mysqld start 开启服务;
  • 运行命令 service mysqld stop 停止服务
    Shell 登入 MySQL: 运行命令 mysql -u root -p

mysql 单机–缓存
变化:
memcached(一套分布式的高速缓存系统)+mysql+垂直拆分–>主从读写分离–>分库分表+水平拆分+集群–>扩展瓶颈–>nosql(用处:为mysql减负)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非关系型数据库、关系型数据库mysql简介 的相关文章

  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • Mongoose:find() 忽略重复值

    我有一只 聊天 猫鼬Schema它具有以下属性 const schema mongoose Schema recipient type mongoose Types ObjectId required true ref User sende
  • Firebase 数据库 - 编码错误

    我是 Firebase 的新手 我想使用他们的数据库 但编码似乎存在一些问题 这是我使用 UTF 8 编码的示例 json Stack This is madness Overflow 666 这就是当我将 json 导入 Firebase
  • Apache Cassandra 如何进行聚合操作?

    总的来说 我对 Apache Cassandra 和 nosql 相当陌生 在 SQL 中 我可以执行聚合操作 例如 SELECT country sum age count AS averageAge FROM people GROUP
  • 在 aws-elasticache 上使用 memcached 或 Redis

    我正在 AWS 上开发一个应用程序 并使用 AWS elasticache 进行缓存 我对使用 memcached 或 redis 感到困惑 我阅读了有关 redis 3 0 2 更新以及它现在如何等同于 memchached 的文章 ht
  • 在 sidekiq 上配置 redis 身份验证

    我想我错过了一些东西 因为我在文档中找不到如何编写 redis 实例的用户名和密码以与 sidekiq 一起使用 有没有办法做到这一点 或者是通过 ENV 变量 Sidekiq 将无法识别的 Redis 选项直接传递给 Redis 驱动程序
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • Spring Data JPA Redis:无法编写基于自定义方法的查询

    我已经使用 Redis 配置了 Spring Data JPA 并使用RedisRepositorieswith 提供了类似的方法find findAll 所有这些方法似乎都工作得很好 但我无法编写我的自定义方法 RedisEntity f
  • 为什么Redis中没有有序的hashmap?

    Redis 数据类型 http redis io topics data types包括排序集 http redis io topics data types intro sorted sets以及其他用于键值存储的必要数据结构 但我想知道
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • Amazon Elasticache Redis 集群 - 无法获取端点

    我需要获取 Amazon Elasticache 中 Redis 集群的终端节点 以下代码适用于 Memcached 集群 但不适用于 Redis import com amazonaws auth AWSCredentials impor
  • 用于标签搜索的数据存储解决方案

    我已经按照预先计算的分数订购了数百万件商品 每个项目都有许多布尔属性 假设总共有大约一万个可能的属性 每个项目有十几个 我希望能够请求实时 几毫秒 给定任意属性组合的前 n 个项目 您会推荐什么解决方案 我正在寻找可扩展性极强的东西 我们目
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • NoSQL(MongoDB)与 Lucene(或 Solr)作为数据库[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着基于文档数据库的 NoSQL 运动的发展 我最近关注了 MongoDB 我注意到如何将项目视为 文档 就像 Lucene 以及 Solr 用
  • 如何延长 django-redis 中的缓存 ttl(生存时间)?

    我正在使用 django 1 5 4 和 django redis 3 7 1 我想延长缓存的 ttl 生存时间 当我取回它时 这是示例代码 from django core cache import cache foo cache get
  • 如何使用redis发布/订阅

    目前我正在使用node js和redis来构建应用程序 我使用redis的原因是因为发布 订阅功能 该应用程序只是在用户进入用户或离开房间时通知经理 function publishMsg channel mssage redisClien

随机推荐

  • 阿里云服务器一直提示安全事件如何解决

    介绍 这几天一直收到阿里云官方的短信和邮箱提示阿里云安全事件提醒 阿里云的官方的客服也打电话询问过我需不需要帮助 由于我的阿里云服务器没有用于商业用途 只是学习的时候使用 所有也就决定自己解决了 影响 由于最近比较忙 就没有怎么注意阿里云短
  • 433MHz工业级无线数传通信模块

    433MHz工业级无线数传通信模块 无线RS232 RS485透明传输 距离1 3000米 DTD465系列工业无线数传模块采用最先进的电子和无线通信技术 能为众多的工业与应用提供高性能 中等距离和可靠数据传输的低成本解决方案 它的工业级电
  • 计算机date时间和‘千年虫事件’

    目录 一 千年虫事件 1 千年虫事件 名词解析 2 应对2000年计算机问题的解决方法 二 Unix Linux 2038问题 Linux系统的几种时间 1 时间戳 date 2 UTC时间和本地时间 timedatectl 3 避免因时间
  • 日精注塑机联网

    不改造程序的话 日精支持输出CSV和txt数据作为其他软件的接口 改造后可以支持63协议 在软件层面日精也有专用的软件 可以看到其实设备厂家提供的软件功能已经非常丰富了 但这类软件最大的缺点是只能自己家的机器使用 要想其他家也兼容进来 既要
  • 【星海随笔】计组数学小课堂

    计算机组成原理 https www bilibili com video BV1ps4y1d73V p 8 16的负一次方既为1 16 16 1 16进制转换为10进制 例如 5 8 5 16 1 8 16 1 十进制转N进制 则除以N 然
  • Transformers中文本生成方法model.generate()参数解释

    本博客仅作为记录 参考 LLM 大语言模型 解码时是怎么生成文本的 爱码网
  • python字符串中所有符合条件的索引

    使用re库中的finditer import re s 1111ah11111ah test re finditer ah s print i for i in test
  • mvp关联activity生命周期_Android MVP架构从入门到精通-真枪实弹

    Android MVP架构从入门到精通 真枪实弹 一 前言 你是否遇到过Activity Fragment中成百上千行代码 完全无法维护 看着头疼 你是否遇到过因后台接口还未写而你不能先写代码逻辑的情况 你是否遇到过用MVC架构写的项目进行
  • VMware Workstation 16 Player 安装Centos 7

    环境准备 VMware Workstation 16 Player 官方下载 https www vmware com products workstation player workstation player evaluation ht
  • Cesium 源码解析 Model(一)

    Cesium中对于3DTiles会解析成Model 特别是3DTile中的B3DM 过程主要是对gltf在Cesium中是如何解析并生成绘制命令的 content model new Model gltf gltfView gltf数据 c
  • 全球数字治理白皮书 附下载

    当今世界 科技革命和产业变革日新月异 数字经济蓬勃发展 深刻改变着人类生产生活方式 对各国经济社会发展 全球治理体系 人类文明进程影响深远 在经济全球化遭遇逆流 保护主义 单边主 义上升的背景下 数字化驱动的新一轮全球化仍蓬勃发展 已成为助
  • QT学习笔记(七)

    第12章 输入与输出 Qt提供了读写字节块的设备类QIODevice QIODevice类是抽象的 无法被实例化 一般是使用它的子类 它包括如下子类 其中 QProcess QTcpSocket QUdpSocket QSslSocket都
  • Java 优先级队列

    文章目录 Java 优先级队列 PriorityQueue简介 继承关系 PriorityQueue示例 Comparable比较器 Comparable接口 Comparator比较器 Comparator接口 底层原理 Java 优先级
  • Unity3d 游戏优化 mono等

    GC问题 1 C 变量分为两种类型 值类型和引用类型 值类型分配在栈区 引用类型分配在堆区 GC关注引用类型 2 GC卡顿原因 堆内存垃圾回收 向系统申请新的堆内存 3 GC触发条件 堆内存分配而当内存不足时 按频率自动触发 手动强行触发
  • 【Vue】 前端上传图片时限制只可以按文件夹上传图片( webkitdirectory )

    前言 最近再对公司前后端不分离的 C Winform 系统进行 Java Web 重构 为了保持客户使用习惯所以要高度还原 其中有一个功能就是上传图片时 以文件夹进行上传 要读取文件夹内所有的图片 看了挺多大神的博客 也看了 Element
  • Keepalived与HaProxy的协调合作原理分析

    Keepalived与HaProxy的协调合作原理分析 keepalived与haproxy合作场景 更好的理解方式 协调合作中考虑的问题 一 Keepalived 以TCP IP模型角度来分析 二 HaProxy 总结 协调合作中考虑的问
  • Go-Python-Java-C-LeetCode高分解法-第四周合集

    前言 本题解Go语言部分基于 LeetCode Go 其他部分基于本人实践学习 个人题解GitHub连接 LeetCode Go Python Java C Go Python Java C LeetCode高分解法 第一周合集 Go Py
  • 由于找不到d3dx9_43.dll无法继续执行-修复教程

    d3dx9 43 dll是一个非常重要的DLL文件 它属于微软DirectX 9 0c的一部分 它主要用于游戏应用程序的开发和运行 在使用Windows平台的玩家中非常常见 这个文件通过DirectX接口提供了一些相关的功能 比如图像和声音
  • 该服务器因不稳定无法正常反应,服务器连接异常

    服务器连接异常 内容精选 换一换 ELB的常见异常返回码有400 403 502 504等 若遇到这些返回码建议您先直接访问后端云服务器 查看是否是后端云服务器的异常 若后端云服务器响应正常 请参考表1排查处理 如果仍无法解决 请联系客服人
  • 非关系型数据库、关系型数据库mysql简介

    Nosql 非关系数据库 数据存储不需要固定的模式 NoSql特点 易扩展 数据之间无关系 大数据量高性能 细粒度 cache性能高 多样灵活的数据模型 增删字段容易 关系数据库 vs NoSql 传统关系数据库 ACID 事务所具有的四个