TiDB数据库简介、特点与应用场景

本文介绍了TiDB数据库的发展历程、核心特点及其应用场景。TiDB是一种兼容MySQL语法的分布式数据库,支持水平扩展与高可用性,适用于高并发和大规模数据处理场景。

一、了解数据库发展史

1.1 数据库技术发展简史

数据库技术产生于20世纪60年代末70年代初,其主要主要研究如何存储,使用和管理数据。随着计算机硬件和软件的发展,数据库技术也不断地发展。数据库技术在理论研究和系统开发上都取得了辉煌的成就。

  • 从数据管理的角度看,数据库技术到目前共经历了如下三个阶段:

  1. 人工管理阶段-数据量小独立,用户直接管理

  2. 文件系统阶段-使用文件存取数据,冗余度高,管理维护难

  3. 数据库系统阶段-专门的数据库软件系统管理数据,高效方便,易于共享维护

  • 按照数据模型发展的主线,数据库技术的形成过程和发展可分为如下三个阶段:

  1. 层次和网状数据库管理系统-可以理解为使用指针来表示数据之间的联系

  2. 关系数据库管理系统(RDBMS)-可以理解为理解为使用二维表来表示维护数据间的关系

  3. 新一代数据库技术的研究和发展-针对关系型数据库存在数据模型,性能,扩展性,伸缩性等方面的缺点,出现了: ORDBMS:面向对象数据库技术。如:PostGreSQL NoSQL:非结构化数据库技术。如

  4. :键值存储数据库:Redis

  5. :列式储数数据库:HBase

  6. :文档型数据库:MongoDB

  7. :图形数据库:Neo4J

NewSQL:这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。如:TiDB

1.2 从MySQL到TiDB

如今的数据库种类繁多,RDBMS(关系型数据库)、NoSQL(Not Only SQL)、NewSQL,在数据库领域均有一席之地,可谓百家争鸣之势。那么我们为什么要学习使用TiDB呢?接下来就从我们最熟悉的MySQL的使用说起!

场景引入

假设现在有一个高速发展的互联网公司,核心业务库MySQL的数据量已经近亿行,且还在不断增长中,公司对于数据资产较为重视,所有数据要求多副本保存至少5年,且除了有对历史数据进行统计分析的离线报表业务外,还有一些针对用户数据实时查询的需求,如用户历史订单实时查询

问题分析

1.MySQL能否满足上述场景需求?

根据以往的MySQL使用经验,MySQL单表在 5000 万行以内时,性能较好,单表超过5000万行后,数据库性能、可维护性都会极剧下降。当然这时候可以做MySQL分库分表,如使用Mycat或Sharding-jdbc

2.分库分表的能否解决问题?

分库分表的优点非常明显,如:

将大表拆分成小表,单表数据量控制在 5000 万行以内,使 MySQL 性能稳定可控。

将单张大表拆分成小表后,能水平扩展,通过部署到多台服务器,提升整个集群的 QPS、TPS、Latency 等数据库服务指标。

但是,此方案的缺点也非常明显:

分表跨实例后,产生分布式事务管理难题,一旦数据库服务器宕机,有事务不一致风险。

分表后,对 SQL 语句有一定限制,对业务方功能需求大打折扣。尤其对于实时报表统计类需求,限制非常之大。事实上,报表大多都是提供给高层领导使用的,其重要性不言而喻。

分表后,需要维护的对象呈指数增长(MySQL实例数、需要执行的 SQL 变更数量等)。

问题解决

基于以上核心痛点,我们需要探索新的数据库技术方案来应对业务爆发式增长所带来的挑战,为业务提供更好的数据库服务支撑。

调研市场上的各大数据库,我们可以考虑选用NewSQL技术来解决,因为NewSQL技术有如下显著特点:

- 无限水平扩展能力

- 分布式强一致性,确保数据 100% 安全

- 完整的分布式事务处理能力与 ACID 特性

而TiDB数据库 GitHub的活跃度及社区贡献者方面都可以算得上是国际化的开源项目,是NewSQL技术中的代表性产品,所以我们可以选择使用TiDB数据库!

1.3 TiDB概述

官网

https://pingcap.com/index.html

TiDB可以理解为是MySQL的加强版/分布式MySQL/MySQLPlus</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值