快速上手TiDB,体验全新的一栈式实时HTAP数据库

article/2025/9/24 15:57:36

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.集群管理
      • ✨1.1 启动与关闭
      • ✨1.2 集群状态
    • 📣 2.连接到 TiDB
      • ✨2.1 MySQL客戶端
      • ✨ 2.2 JDBC
      • ✨ 2.3 navicat客戶端
    • 📣 3.数据库应用
      • ✨ 3.1 创建数据库
      • ✨3.2 创建表
      • ✨3.3 数据写入
      • ✨ 3.4 数据查询

前言

快速上手TiDB,体验全新的一栈式实时HTAP数据库

📣 1.集群管理

✨1.1 启动与关闭

1.启动集群
集群部署成功后,可以执行以下命令启动该集群
[root@jeames ~]# su - tidb
[tidb@jeames ~]$ tiup cluster start tidb-test2.关闭集群
可以执行以下命令关闭该集群
[root@jeames ~]# su - tidb
[tidb@jeames ~]$ tiup cluster stop tidb-test

在这里插入图片描述

✨1.2 集群状态

1.检查集群状态
[tidb@jeames ~]$ tiup cluster display tidb-test2.集群部署成功后,可以通过 tiup cluster list 命令在集群列表中查看该集群
[tidb@jeames ~]$ tiup cluster list
tiup is checking updates for component cluster ...
Starting component `cluster`: /home/tidb/.tiup/components/cluster/v1.11.0/tiup-cluster list
Name       User  Version  Path                                                 PrivateKey
----       ----  -------  ----                                                 ----------
tidb-test  tidb  v6.3.0   /home/tidb/.tiup/storage/cluster/clusters/tidb-test  /home/tidb/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa

在这里插入图片描述

📣 2.连接到 TiDB

✨2.1 MySQL客戶端

TiDB 高度兼容 MySQL 协议,全量的客户端连接参数列表,请参阅 MySQL Client Options。
TiDB 支持 MySQL 客户端/服务器协议。这使得大多数客户端驱动程序和 ORM 框架可以像连接到 MySQL 一样地连接到 TiDB。MySQL Client
可以使用 MySQL Client 作为 TiDB 的命令行工具,安装完后你可以使用如下命令行连接到 TiDB:
mysql --host <tidb_server_host> --port 4000 -u root -p --comments注意:MySQL 命令行客户端在 5.7.7 版本之前默认清除了 Optimizer Hints。
如果需要在这些早期版本的客户端中使用 Hint 语法,需要在启动客户端时加上 --comments 选项[root@jeames ~]# mysql --host 192.168.1.54 --port 4000 -u root -p
注:The new password is: ‘Z2h^q6tBV7058bn&=%’

在这里插入图片描述

✨ 2.2 JDBC

使用 JDBC 驱动连接到 TiDB,这需要创建一个 MysqlDataSource 或 MysqlConnectionPoolDataSource 对象(它们都实现了 DataSource 接口),
并使用 setURL 函数设置连接字符串MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setURL("jdbc:mysql://{host}:{port}/{database}?user={username}&password={password}");有关 JDBC 连接的更多信息,可参考 JDBC 官方文档
https://dev.mysql.com/doc/connector-j/8.0/en/连接参数如下:参数名	      描述
{username}	需要连接到 TiDB 集群的 SQL 用户
{password}	需要连接到 TiDB 集群的 SQL 用户的密码
{host}	TiDB 节点运行的 Host
{port}	TiDB 节点正在监听的端口
{database}	(已经存在的)数据库的名称

✨ 2.3 navicat客戶端

因为TiDB内核是MySQL,所以直接用Navicat工具选择连接MySQL就行:
使用Navicat登录进去后,可以看到目前最新版本的TiDB的MySQL内核是:5.7.25

在这里插入图片描述

📣 3.数据库应用

✨ 3.1 创建数据库

在 TiDB 中数据库对象可以包含表、视图、序列等对象1.创建数据库
使用 CREATE DATABASE 语句来创建数据库:
mysql> CREATE DATABASE IF NOT EXISTS `jeames`;
Query OK, 0 rows affected (0.23 sec)2.要查看集群中的数据库,可在命令行执行一条 SHOW DATABASES 语句
mysql> SHOW DATABASES-> ;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| jeames             |
| mysql              |
| test               |
+--------------------+
6 rows in set (0.00 sec)注意:test 数据库是 TiDB 提供的一个默认数据库。如果没有必要,尽量不要在生产环境使用它。你可以自行使用 CREATE DATABASE 语句来创建数据库

✨3.2 创建表

表是集Tidb群中的一种逻辑对象,它从属于数据库,用于保存从 SQL 中发送的数据。表以行和列的形式组织数据记录,一张表至少有一列。
若在表中定义了 n 个列,那么每一行数据都将拥有与这 n 个列中完全一致的字段.1.CREATE TABLE 语句通常采用以下形式:
CREATE TABLE {table_name} ( {elements} );{table_name}: 表名。
{elements}: 以逗号分隔的表元素列表,比如列定义,主键定义等2.定义列
列从属于表,每张表都至少有一列,列定义通常使用以下形式:
{column_name} {data_type} {column_qualification}参数描述
{column_name}: 列名。
{data_type}: 列的数据类型。
{column_qualification}: 列的限定条件,如列级约束案例:
mysql> use jeames             
Database changedCREATE TABLE `jeames`.`users` (`id` bigint,`nickname` varchar(100),`balance` decimal(15,2)
);3.表中创建主键
主键是一个或一组列,这个由所有主键列组合起来的值是数据行的唯一标识。需遵循选择主键时应遵守的规则,举一个 student 表中定义 AUTO_RANDOM 主键的例子:CREATE TABLE `jeames`.`student` (`id` bigint AUTO_RANDOM,`balance` decimal(15,2),`nickname` varchar(100),PRIMARY KEY (`id`)
);3.列约束
除主键约束外,TiDB 还支持其他的列约束,如:非空约束 NOT NULL、唯一约束 UNIQUE KEY、默认值 DEFAULT 等例如,你需要确保用户的昵称唯一,可以这样改写 student 表的创建 SQL
CREATE TABLE `jeames`.`student` (`id` bigint AUTO_RANDOM,`balance` decimal(15,2),`nickname` varchar(100) UNIQUE,PRIMARY KEY (`id`)
);如果你在 users 表中尝试插入相同的 nickname,将返回错误。

✨3.3 数据写入

1.插入行
假设你需要插入多行数据,那么会有两种插入的办法,假设需要插入 3 个玩家数据:一个多行插入语句
INSERT INTO `player` (`id`, `coins`, `goods`) VALUES (1, 1000, 1), (2, 230, 2), (3, 300, 5);多个单行插入语句
INSERT INTO `player` (`id`, `coins`, `goods`) VALUES (1, 1000, 1);
INSERT INTO `player` (`id`, `coins`, `goods`) VALUES (2, 230, 2);
INSERT INTO `player` (`id`, `coins`, `goods`) VALUES (3, 300, 5);2.更新数据
在 SQL 中,UPDATE 语句一般为以下形式:
UPDATE {table} SET {update_column} = {update_value} WHERE {filter_column} = {filter_value}在 SQL 中更改作者姓名的示例为:
UPDATE `authors` SET `name` = "Helen Haruki" WHERE `id` = 1;3.删除数据
在 SQL 中,DELETE 语句一般为以下形式:
DELETE FROM {table} WHERE {filter}在SQL中,删除数据的示例如下:
DELETE FROM `ratings` WHERE `rated_at` >= "2022-04-15 00:00:00" AND  `rated_at` <= "2022-04-15 00:15:00";

✨ 3.4 数据查询

1.单表查询
在 MySQL Client 等客户端输入并执行如下 SQL 语句:
SELECT id, name FROM authors;在 SQL 中,可以使用 WHERE 子句添加筛选的条件:
SELECT * FROM authors WHERE birth_year = 1998;使用 ORDER BY 语句可以让查询结果按照期望的方式进行排序
SELECT id, name, birth_year
FROM authors
ORDER BY birth_year DESC;希望 TiDB 只返回部分结果,可以使用 LIMIT 语句限制查询结果返回的记录数。
SELECT id, name, birth_year
FROM authors
ORDER BY birth_year DESC
LIMIT 10;你想要关注数据整体的情况,而不是部分数据,你可以通过使用 GROUP BY 语句配合聚合函数
mysql> SELECT birth_year, COUNT(DISTINCT id) AS author_count
FROM authors
GROUP BY birth_year
ORDER BY author_count DESC;+------------+--------------+
| birth_year | author_count |
+------------+--------------+
|       1932 |          317 |
|       1947 |          290 |
|       1939 |          282 |
|       1935 |          289 |
|       1968 |          291 |
|       1962 |          261 |
|       1961 |          283 |
|       1986 |          289 |
|       1994 |          280 |
...
|       1972 |          306 |
+------------+--------------+
71 rows in set (0.00 sec)2.多表连接查询1)内连接 INNER JOIN
内连接的连接结果只返回匹配连接条件的行。2)左外连接 LEFT OUTER JOIN
左外连接会返回左表中的所有数据行,以及右表当中能够匹配连接条件的值,如果在右表当中没有找到能够匹配的行,则使用 NULL 填充。3)右外连接 RIGHT OUTER JOIN
右外连接返回右表中的所有记录,以及左表当中能够匹配连接条件的值,没有匹配的值则使用 NULL 填充。4)交叉连接 CROSS JOIN
当连接条件恒成立时,两表之间的内连接称为交叉连接(又被称为“笛卡尔连接”)。
交叉连接会把左表的每一条记录和右表的所有记录相连接,如果左表的记录数为 m, 右表的记录数为 n,则结果集中会产生 m * n 条记录。3.子查询
子查询是嵌套在另一个查询中的 SQL 表达式,借助子查询,可以在一个查询当中使用另外一个查询的查询结果。例如,想要查找 authors 表当中年龄大于总体平均年龄的作家,可以通过将子查询作为比较操作符的操作数来实现:
SELECT * FROM authors a1 WHERE (IFNULL(a1.death_year, YEAR(NOW())) - a1.birth_year) > (SELECTAVG(IFNULL(a2.death_year, YEAR(NOW())) - a2.birth_year) AS average_ageFROMauthors a2
)

在这里插入图片描述


http://chatgpt.dhexx.cn/article/by1cGGDj.shtml

相关文章

CNCC技术论坛|分布式数据库HTAP的探索与实践

本文转载自微信公众号“中国计算机学会” 编者按 12月8-10日&#xff0c;中国计算机协会即将全线上举办CNCC2022&#xff0c;大会覆盖118个计算行业、人工智能、云计算、教育、安全等30个热门专业领域的技术论坛&#xff0c;700余位专家将着力探讨计算技术与未来宏观发展趋势&a…

TiDB:基于 Raft 的 HTAP 数据库

目录 1. 简介 2. 基于 Raft 的 HTAP 3. TiDB 架构 4. Multi-Raft 存储 5. HTAP 引擎 6. 实验 7. 相关工作 8. 结论 摘要 混合事务和分析处理&#xff08;HTAP&#xff09;数据库处理事务查询和分析查询时需要隔离&#xff0c;以消除它们之间的干扰。要实现这一点&…

云原生 HTAP -- Cloud-Native Transactions and Analytics in SingleStore

文章目录 背景1 存算分离2. 统一的表存储 &#xff08;行列混存&#xff09;2.1 二级索引2.2 行锁 3. 自适应查询引擎3.1 Segment skipping 实现3.2 Filtering 选择 4 性能总结 背景 上篇看了 PolarDB-IMCI 在HTAP的实践&#xff0c;其中提到了其也有借鉴 SingleStore 的实现思…

真正的 HTAP 对用户和开发者意味着什么?

作者 | 杨传辉 OceanBase 关于作者&#xff1a; 杨传辉&#xff0c;OceanBase CTO。2010年作为创始成员之一加入 OceanBase 团队&#xff0c;主导了 OceanBase 历次架构设计和技术研发&#xff0c;从无到有实现 OceanBase 在蚂蚁集团全面落地。同时&#xff0c;他也主导了两次…

HTAP系统架构实践总结

商业上的驱动力 当前市场上对于数据的处理方式越加的注重多种类型的负载混合进行&#xff0c;即对于用户或者业务端来说&#xff0c;有一个统一的处理逻辑或者架构。如对于广告计算&#xff0c;用户画像&#xff0c;分控&#xff0c;物流&#xff0c;地理信息等商业场景下&…

HTAP 应该是一种需求而不是一款产品

HTAP&#xff08;Hybrid Transaction and Analytical Process&#xff0c;混合事务和分析处理&#xff09;自2014年明确提出以后成为了很多数据库厂商努力的方向。其实HATP并不新鲜&#xff0c;早年RDB刚兴起时本来就是用一个数据库同时做事务和分析&#xff0c;但随着数据规模…

TiDB数据库HTAP概述

目录 HTAP MPP架构 TiDB的工作负载场景与流式计算场景 例题 HTAP HTAP 同时支持OLTP&#xff08;在线事务性&#xff09;OLAP&#xff08;在线分析性&#xff09; OLTP&#xff1a;行存 如手机支付 OLAP&#xff1a;列存 如报表&#xff0c;分析传统的OLTP和OLAP解决方…

云原生 HTAP -- PolarDB-IMCI:A Cloud-Native HATP Database

文章目录 0 背景1 IMCI 架构 及 相关组件实现1.1 架构演进的背景1.2 基本架构1.2 基本使用1.4 列索引存储 设计1.5 RW-RO 的数据同步实现1.5.1 CALS1.5.2 2P-COFFER 1.6 计算引擎实现1.7 性能 2 总结 近期除了本职工作之外想要再跟进一下业界在讨论 以及 可落地的方向&#xff…

浅谈“HTAP”

文章转载自&#xff1a; 浅谈“HTAP”&#xff0c;仅用于学习&#xff0c;如有侵权&#xff0c;请联系删除。 HTAP是近些年来比较火的一个概念&#xff0c;下面就聊聊其前世今生及技术特点。 1. 数据应用类别 根据数据的使用特征&#xff0c;可简单做如下划分。在选择技术平台…

HTAP应该是一种需求 而不是一种产品

作者&#xff1a;石臻臻, CSDN博客之星Top5、Kafka Contributor 、nacos Contributor、华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家 、 LogiKM PMC(改名KnowStreaming)。 LogiKM(改名KnowStreaming) 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力…

009、体系架构之HTAP

HTAP HTAP技术传统的HTAP解决方案HATP的要求TiDB的HTAP架构TiDB的HTAP特性使用场景 MPP HTAP技术 传统的HTAP解决方案 HATP的要求 可扩展性 分布式事务分布式存储 同时支持OLTP与OLAP 同时支持行存和列存OLTP与OLAP业务隔离 实时性 行存与列存数据实时同步 TiDB的HTAP架构 …

什么是HTAP 阿里云上实现

讲师介绍 梁成辉&#xff08;城璧&#xff09;&#xff0c;阿里数据库事业部技术专家&#xff0c;阿里分布式数据层中间件TDDL、云产品分布式关系型数据库服务DRDS技术负责人。曾多次担任数据层稳定性负责人并保障双十一TDDL & DRDS的稳定性&#xff0c;目前主要聚焦在DRD…

浅谈 HTAP 混合技术和金融业应用场景

近年来&#xff0c;随着大数据应用场景的快速普及与多样化发展&#xff0c;传统的数据处理方案已愈发难以满足海量数据实时分析的数据处理需求。针对上述挑战&#xff0c;混合事务/分析处理&#xff08;Hybrid Transaction and Analytical Process&#xff0c;HTAP&#xff09;…

聊聊 HTAP 的前世今生

随着现代社会大型实时分析应用的逐渐流行&#xff0c;关系型数据库已经难以处理高并发的事务请求。商业层面上&#xff0c;当全球进入数字化时代&#xff0c;数字化技术渗透到各行各业&#xff0c;同时产生了海量数据&#xff0c;数据的存储和应用是企业决策的重要依据之一&…

深入浅出理解什么是HTAP

关于HTAP HTAP(Hybrid Transactional/Analytical Processing)混合事务 / 分析处理。这里的HTAP就是常见的比较经典的OLAP和OLTP的处理场景的结合体。即可解决OLTP在线事务处理场景,还可以解决OLAP在线分析场景。Gartner也认为HTAP数据库将成为数据库领域的一个重要的发展趋…

《穿越计算机的迷雾》第二版再版说明

《穿越计算机的迷雾》2018年已经再版&#xff08;第2版&#xff09;。 转载于:https://www.cnblogs.com/leec/p/8099391.html

《穿越计算机的迷雾》第一版说明

&#xfeff;&#xfeff; 这 本书已经出版&#xff0c;并在实体书店和网上书店铺货。需要的朋友可以上网搜索并购买。 如果你关心这本书&#xff0c;就请移步到 http://www.tianya.cn/publicforum/content/it/1/502390.shtml 。这是我最早发帖的地方&#xff0c;欢迎大家到这…

《穿越计算机的迷雾》读书笔记二

振荡器 电子二极管 电子三极管 触发器 跑马灯 寄存器

《穿越计算机的迷雾》读书笔记九

对于每个扇区来说,真正用于存储用户数据的地方是在扇区头之后&#xff0c;一般有512字节。 指令集: 1.算术运算指令和逻辑运算指令 2.数据传送指令 3.处理器状态控制指令