TIDB 学习第 1 天:TiDB 数据库简介

x33g5p2x  于2021-12-19 转载在 其他  
字(1.4k)|赞(0)|评价(0)|浏览(314)

一、数据库种类 SQL NoSQL NewSQL

  • SQL的主要问题是它难以扩展,因为它的性能随着数据库的变大而快速下降。 分布式也是有问题,
  • NoSQL采取最终一致性原则,而不是所有四个参数在每个事务中保持一致。 这意味着如果在特定时间段内没有特定数据项的更新,则最终对其所有的访问都将返回最后更新的值。系统通常被描述为提供基本保证的原因(基本可用,软状态,最终一致性) — 而不是ACID。虽然这个方案极大地增加了可用时间和伸缩性,它也会导致数据丢失;
  • NewSQL是一种相对较新的形式,旨在使用现有的编程语言和以前不可用的技术来结合SQL和NoSQL中最好的部分。 NewSQL目标是将SQL的ACID保证与NoSQL的可扩展性

二、TiDB 简介

TiDB 是一个分布式 NewSQL数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库,也就是说TiDB适应数据存储。

三、TiDB 架构

  • TiDB Server–>TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。
  • PD Server–>Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。PD 是一个集群,需要部署奇数个节点
  • TiKV Server–>TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。
  • TiSpark–>TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。

四、TiDB应用优势

1)弹性扩容

具有NoSQL类似的扩容能力,在数据量和访问流量持续增长的情况下能够通过水平扩容提高系统的业务支撑能力,并且响应延迟稳定。

2)简单易用

兼容MySQL协议,基本上开箱即用,完全不用担心传统分库分表方案带来的心智负担和复杂的维护成本,而且用户界面友好,常规的技术人员都可以很高效地进行维护和管理。

五、为什么使用TiDB

TiDB 数据库,结合了关系库与 KV 存储的优点,对于使用方,完全可以当做 MySQL 来用,而且不用考虑数据量大了后的分库分表以及为了支持分库分表后的多维度查询而建立的 Mapping 表,可以把精力全部放在业务需求上。

六、TiDB测试

TiDB 支持绝大多数 MySQL 语法,业务可以将基于 MySQL 的开发,无缝迁移至 TiDB。不过目前TiDB不支持部分MySQL 特性,如:存储过程、自定义函数、触发器等。

总结

今天的文章主要是在之前的工作中使用过 TiDB 数据库,在这里做关于 TiDB 数据库的详细记录,方面后续实践中温习,接下来的几天会做一个详细记录。

相关文章