Mysql(一)SQL和NoSQL

首先你需要了解SQL和NoSQL

SQL(Structured Query Language)数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL(开源),PostgreSQL(开源)。

NoSQL(Not Only SQL)泛指非关系型数据库。主要代表:MongoDB,Redis,CouchDB。

SQL和NoSQL的区别

SQL类型数据特点

1.SQL表创建一个严格的数据模板,因此很难犯错误。
2.SQL规范化,多表关联模式最大限度的减少数据的冗余 。
3.SQL 具有强大的join 多表关联
4.SQL 具有外键保障数据的完整性
5.SQL 良好的事物支持
6.SQL CRUD 语法是标准化的陈述性语言

Nosql类型数据库特点:

1.NoSQL更加的灵活和宽容,能够存储任何数据,可能会导致一致性的问题。
2.NoSQL反规范化,牺牲数据冗余以加快查询的速度,但在多个记录中更新出版商信息将会显著变慢。
3.缺乏完整性保障和事物保障
4.Nosql 基于json 简单但复杂查询
5.NoSQL 数据模型更加简单 经常被认为比SQL更快;
6.NoSQL数据本身在Cache上已经做了相当多的优化工作。

sql类型数据有如下弊端而Nosql在这方面做了很好的弥补
  1. 扩展困难:由于存在类似Join这样多表查询机制,使得数据库在扩展方面很艰难;

  2. 读写慢:这种情况主要发生在数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等的并发问题,所以导致其读写速度下滑非常严重

  3. 成本高:企业级数据库的License价格很惊人,并且随着系统的规模,而不断上升;

  4. 有限的支撑容量:现有关系型解决方案还无法支撑Google这样海量的数据存储;

更适合SQL的项目:

1.可预先确定的逻辑关系离散数据的要求
2.数据完整性是必不可少的
3.有良好开发经验和支持的标准基础技术

更适合NoSQL的项目:

1.不相关的、不确定或不断变化的数据要求
2.更加简单宽松的项目对象,可以立即编码
3.速度和扩展性是必要的

数据库能够做什么?

存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息

数据库的特点

数据结构化存储在二维表中。
支持事务的原子性 一致性 隔离性 持久性 (简称ACID)
支持使用SQL语言对存储在其中的数据进行操作

六、数据库的适用场景

数据之间存在着一定关系,需要关联查询数据的场景
需要事务支持的业务场景
需要使用SQL语言的灵活操作数据的场景

关系数据库选型原则

1、数据库使用的广泛
2、数据库的可扩展性
3、数据库的安全性和稳定性
4、数据库所支持的系统
5、 数据库的使用成本

数据库选项原则

MySQL数据库的可扩展性
支持基于二进制日志的逻辑复制
存在多种第三方数据库中间层,支持读写分离及分库分表
MySQL的安全性和稳定性
MySQL主从复制集群可达到99%的可用性
配合主从复制高可用架构可以达到99.99%的可用性
支持对存储在MySQL的数据进行分级安全控制
MySQL所支持的系统
支持Liunx系统
支持windows系统
MySQL的使用成本
社区版本免费
使用人员众多,可以方便的获取技术执行

非关系数据库的特点

存储结构灵活,没有固定的结构
对事务的支持比较弱,但对数据的并发处理性能高
大多不适用SQL语言操作数据

非关系数据库的适用场景

数据结构不固定的场景
对事务要求不高,但读写并发比较大的场景
对数据的处理操作比较简单的场景

发布了45 篇原创文章 · 获赞 7 · 访问量 904

猜你喜欢

转载自blog.csdn.net/qq_42222342/article/details/104045297