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

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减负)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值