热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

猿创征文|国产数据库,我看好分布式数据库TiDB

前言每当提及我们国家必须要自主掌握和创新的一些关键核心技术,相信大多数人都会优先考虑到芯片,但其实还有一种非常核心的IT技术也至关重要,

在这里插入图片描述

前言

每当提及我们国家必须要自主掌握和创新的一些关键核心技术,相信大多数人都会优先考虑到芯片,但其实还有一种非常核心的 IT 技术也至关重要,那就是 数据库

面对中国这样的人口大国,人们生活中的每一个角落、每一秒都在产生着海量数据。那么面对如此庞大的数据体量,数据库的处理是否安全可靠便成了重中之重,对数据库处理能力的安全性、可靠性的要求极高。

在业务爆发式增长的过程中,很多企业面临的一大难题就是面对庞大的数据体系,基于 MySQL 构建的传统的关系型数据库服务,已不能再满足复杂的数据库存储、管理与运维。所以分布式数据库应运而生,TiDB 便是其典型代表,也可以称得上是国产数据库的佼佼者。

那么什么叫分布式数据库呢?

首先,分布式数据库是由多个数据节点组成的,当数据想要增加算力时,那么只需增加数据节点即可,这也叫数据库的水平拓展。通俗的讲,分布式与集中式的区别在于,集中式数据库的拓展不会增加系统成员数量,但是这个成员所需要承担的任务会更多更重;分布式数据库则不会改变原有成员的工作量,而是会再增加若干系统成员 —— 人多力量大。

除此之外,随着数字经济蓬勃发展,高并发成为了当前最大挑战。当需求量巨大或者响应要求高时,传统集中式的结构很难拓展,这时就需要分布式结构的数据库“大显身手”了。简单来说就是,数据量越大,分布式的优势越明显



认识 TiDB

TiDB 是一个分布式的、具备水平扩展能力、支持 HTAP 及 AICD 事务的关系型数据库,是一款定位于在线事务处理/在线分析处理的数据库产品,实现了一键水平伸缩、强一致性的多副本数据安全、分布式事务等重要功能,同时兼容 Mysql 协议和生态。也可以将它理解为 Mysql 增强版。

面对当下云原生体系的不断发展,传统数据库诸如资源难以动态伸缩、单点问题、吞吐量受限、单表海量数据性能存在瓶颈等不足愈发明显,TiDB 则很好的弥补了这些不足。

TiDB 主要有以下特性:

分布式:系统在物理上是分布的,但在逻辑上是集中的。从架构上来看 TiDB 的计算节点、和存储节点是分离的,两者互不干扰,即使某一节点挂掉,也不会影响到其他部分的工作。

支持水平扩缩容:这个特性可以说是分布式数据库最基本的要求,TiDB 允许用户按需对计算、存储分别进行在线的扩容或缩容,避免 资源不足资源浪费 的问题。

高可用:通常指通过设计减少系统不能提供服务的时间,也就是做到 冗余 以及 自动故障转移

HTAP:混合事务分析处理,即联机事务处理(OLTP)、联机分析处理(OLAP)的混合版,可同时实现两种功能。

在这里插入图片描述

ACID 事务:ACID 事务指数据库在写入资料的过程中,为保证事务正确可靠所必须具备的 原子性一致性隔离性持久性

SQL 支持:兼容 Mysql 5.7 协议和 Mysql 生态。由于 TiDB 和 MySQL 语法和特性高度兼容,几乎不需要任何改动,就能完成数据库从 MySQL 到 TiDB 的转换。

在这里插入图片描述

正是这些特性,使得 TiDB 成为了云原生数据库的佼佼者,更加契合云原生架构。



实操演示:本地安装和部署 TiDB

那么在我们的服务器中,应如何安装和使用 TiDB 呢?TiDB 支持主流 Linux 操作系统环境,在这里我使用 CentOS 虚拟机演示如何去部署一个本地的 TiDB 实例。

第一步:TiUP 的安装

在各种软件的安装过程中,都少不了包管理工具的应用,例如 CentOS 的 yum。同样的,TiDB 4.0 开始引进了一个新的工具 TiUP,它就承担着 包管理器 的角色。

部署 TiDB 集群第一步要先安装 TiUP,执行一行指令即可;

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

如下;

在这里插入图片描述

安装完成后,执行提示的指令 source /root/.bash_profile to use it,然后就可以使用 tiup;

如下使用 tiup --version 查看 tiup 版本信息。

在这里插入图片描述
出现版本信息,说明 TiUP 安装成功。

第二步:使用 tiup playground 启动一个 TiDB 实例

安装 TiUP 后就可以使用 tiup playground 相关指令了,tiup playground 包含以下常用操作;

#启动集群
tiup playground v4.0.0 --kv 3 --pd 3 --db 3 --monitor
#查看集群
tiup playground display
#扩容集群
tiup playground scale-out--pd 1
#缩容集群
tiup playground scale-in --pid <pid>

我们使用 tiup playground 启动一个本地 TiDB&#xff1b;

tiup playground v4.0.0 --kv 1 --pd 1 --db 1 --monitor

首次启动时&#xff0c;需要下载一些新的东西所以速度稍慢。出现绿色代码即启动成功&#xff0c;且处于启动状态&#xff1b;

在这里插入图片描述
接下来新开一个窗口&#xff0c;使用提示的连接命令连接 TiDB 数据库&#xff1b;

在这里插入图片描述

扩容缩容等其他操作使用相关指令即可。


TiDB 不仅功能强大&#xff0c;且与 Mysql 高度兼容&#xff0c;操作简单&#xff0c;数不清的优点使得 TiDB 在众多国产数据库中脱颖而出。美团点评数据库专家团队曾对 TiDB 做出了高度评价&#xff1a;

“我们看好 TiDB 的发展&#xff0c;未来会加速推进 TiDB 在更多业务系统中的使用。”


推荐阅读
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文介绍了Paxos的世界中关于复制日志与状态机的概念和重要性。通过存储日志来实现数据的持久化,并通过日志流来记录数据的变化,而不是直接持久化数据本身。这样做的好处是简化了持久化存储的操作,并且方便多机之间的数据同步。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
author-avatar
czx_91_673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有