美文网首页数据库DataBase
Database(一) 数据库全览

Database(一) 数据库全览

作者: joshuaXin | 来源:发表于2020-04-28 15:20 被阅读0次

一:数据库的全览图

1. 数据库全览图

二:数据库的种类

DataBase是存储数据的一个媒介,自发展以来,已经有太多针对于不同场景的DataBase,比如几年前,刚开始接触Mysql的时候,发现Mysql常用的两种存储引擎,就很好奇,觉得MyIsam比Innodb差远了,为什么还有存在的价值,后来明白原来是场景不同,一个偏向OLTP、一个偏向OLAP;下面就从场景的角度,对我接触过的DataBase分类:

1.关系型数据库 RDB

关系型数据库一般都有固定的表结构,且有一定的范式的理论支撑,对数据的格式和结构要求较多,常见的有 SQL Server、Oracle、Mysql、PostgreSQL;RDB的优点在于有完善的DDL、指出复杂的SQL,一致性上保证比较好;缺点在于扩展性、灵活性较差;

2.NoSQL Not only SQL

NoSQL某种意义上是在互联网场景下发展起来的,一般都不使用关系型数据库的设计,他们往往牺牲了数据的强一致性,他们往往用来弥补或替换RDB的一些不试用的场景,比如Redis是为了弥补单机RDB的请求量限制,MongoDB来解决数据需要严格设计的弱点,Cassandra使用列存储,也可以支持一些半结构化数据;

NoSQL的场景也比较多,有做Key-value:比如Redis、Memcached,常作为缓存使用;有文档存储型,比如MongoDB,还有列存储的Cassandra、HBase等;

3. New SQL

1)New SQL解决的问题

NoSQL主要是弥补和替换RDB的一些场景的,比如解决存储非结构化数据,但是还是替代不了RDB;而RDB在单机上是有限制的,为了保留RDB的特点,且增强DB的扩展性,提出了New SQL,常见的有 TiDB、Mysql Cluster;(PS :也有一些数据库中间件来解决类似的问题,比如Sharding-Sphere,Sharding-JDBC是它的一部分) 总体来讲:NewSQL即保持NoSQL的高可扩展和高性能,并且保持关系模型;

2)NewSQL的结构设计的重点

 容灾和高可用性:多副本;

SQL引擎优化:会提供SQL的解析、Sharding、转发的功能,增删改查应该都需要跨节点

一致性:分布式的一致性,比如2PC、Paxos、Raft等一致性协议

高扩展性:可以水平扩展,比如有中心控制或数据迁移等

4.OLAP、OLTP

即Online Analytical processing 和Online transaction processing,他们之间的区别有点类似于 计算密集型和IO密集型的区别,OLTP一般的瓶颈在IO,SQL语句也偏向于短小;OLAP一般的瓶颈在CPU;

比如MyIsam比较适用于OLAP,表锁、存储、不支持事务等;

三:准备总结的内容

1.mysql相关

   1)使用方面:explain

   2)语句的原理:join、group by、in查询

   3)存储相关

   4)索引相关

   5)事务相关

   6)锁、死锁等

2.扩展

   1)分库分表:Sharding-JDBC、mysql Cluster

   2)NoSQL:Cassandra,简单介绍下MongoDB

   3)TiDB

相关文章

网友评论

    本文标题:Database(一) 数据库全览

    本文链接:https://www.haomeiwen.com/subject/txivwhtx.html