TiDB Server

·处理客户端的连接

·SQL语句的解析和编译

·关系数据库与KV的转化

·SQL语句的执行

·执行oline DDL

·垃圾回收

·热点小表缓存V6.0

TiKV

·数据持久化

·副本的强一致性和高可用性

·MVCC(多版本并发控制)

·分布式事务支持

·Coprocessor(算子下推)

Placement Driver

·整个集群TiKV的元数据存储

·分配全局ID和事务ID

·生成全局时间戳TSO

·收集集群信息进行调度

·提供label,支持高可用

·提供TiDBi Dashboard 服务

TiFlash

·异步复制

·一致性

·列式存储提高分许查询效率

·业务隔离

·智能选择

热点小表缓存

·表的数据量不大

·只读表或者修改不频繁的表

·表的访问很频繁

热点小表缓存应用

·TiDB对于每张缓存表的大小限制为64MB

·适用于查询频繁、数据量不大、极少修改的场景

·在租约到期(tidb_table_cache_lease)时间内,写操作会被阻塞

·在租约到期(tidb_table_cache_lease)时,读性能会下降

·不支持直接对缓存表做DDL操作,需要先关闭

·对于表加载较慢或者极少修改的表,可以适当延长tidb_table_cache_lease保持读性能稳定

RocksDB

·RocksDB针对Flash存储进行优化,延迟极小,使用LSM存储引擎

·高性能的Key-Value数据库

·完善的持久化机制,同时保证性能和安全性

·良好的支持范围查询

·为需要存储TB级别数据到本地FLASH或RAM的应用服务器设计

·针对存储在高速设备的中小键值进行优化-可以存储在FLASH或者直接存储在内存

·性能随CPU数量线性提升,对多核系统友好

Raft日志复制

·Propose

·Append

·Replicate

·Append

·Committed

·Apply

HTAP技术

HTAP的要求

·可扩展性

·分布式事务

·分布式存储

·同时支持OLTP和OLAP

·同时支持行存和列存

·OLTP 与OLAP业务隔离

·实时性

·行存与列存数据实时同步

TiDB 的HTAP 特性

·行列混合

·行存(TiFlash)支持基于主键的实时更新

·TiFlash作为列存副本

·OLTP与OLAP业务隔离

·智能选择(CBO自动或者人工选择)

·MPP架构

MPP

·大量数据的join聚合查询

·所有MPP计算都在TiFlash节点内存中完成

·目前只支持等值连接

·Enforce_mpp帮助验证是否可以使用MPP

TiFlash主要功能

·异步复制

·一致性读取

·引擎智能选择

·计算加速

TiFlash(Learner)

·不参与Raft投票

·不参与Raft选举

·基于主键快速更新

Placement Rules in SQL 之后

·跨地域部署的集群,支持本地访问

·根据业务隔离资源

·按照业务等级配置资源和副本数

Placement Rules in SQL的应用

·精细化数据放置,控制本地访问与跨区域访问

·指定副本数,提高重要业务的可用性和数据可靠性

·将业务按照等级、资源需求或者数据生命周期进行隔离

·业务数据整合,降低运维成本与复杂度

内存悲观锁-应用

·减少事务的延时

·降低磁盘和网络带宽

·降低TiKV的CPU消耗

·锁丢失问题

Top SQL作用

·可视化地展示CPU开销最多的Top 5类SQL语句

·支持指定TiDB Server 及TiKV实例进行查询

·支持统计所有正在执行的SQL语句

·支持每秒请求数、平均延迟、查询计划等详细执行信息

TiDB Enterprise Manager(TiEM)功能

·一键部署集群&多套集群一站式管理

·集群原地升级

·参数管理

·克隆集群&主备集群切换

TiDB Cloud

·TiDB Cloud是一个功能齐全的数据库即服务或(DBaaS)

1. 存储引擎的的功能

  • 提供数据存储接口并持久化存储数据

2. LSM-tree 的特性

  • LSM-tree 结构本质上是一个用空间置换写入延迟,用顺序写入替换随机写入的数据结构

3. 数据库技术的发展

  • 20世纪80年代,关系数据库发展
  • 2000年左右,NoSQL 发展
  • 2010年左右,NewSQL 发展
  • 2020年后, HTAP 成为强需求

4. Google BigTable 解决的问题

  • 分布式 key-value 存储

5. 分布式存储引擎 TiKV 的特性

  • 负责数据的存储和持久化

6. TiDB 的 MVCC

  • 通过在 Key 后面添加版本号来实现
  • 有了 MVCC 版本控制后,TiKV 得以实现并发控制、SI 的隔离级别、事务支持、历史数据恢复等功能
  • TiDB 的 MVCC 数据与当前数据存储在同一个 Region

7. TiDB-Server 的后台功能

  • 垃圾回收(GC)
  • 执行 DDL
  • 统计信息管理
  • SQL 优化器与执行器

8. CAP 理论中的一致性和 ACID 的一致性的比较

  • CAP 理论中的一致性:所有副本的一致性
  • ACID 一致性:事务的一致性

9. TiDB 的哪个组件在 2018 年捐献给了 CNCF 基金会,并于 2020 年正式毕业

  • TiKV

10. 列式存储引擎 TiFlash 采用了什么样的数据结构支持准实时更新

  • Delta tree

11. 下推计算

  • 减少了节点之间的网络交互成本
  • 充分利用 TiKV 分布式的存储节点的并行计算能力
  • 在每个节点都需要一个计算模块——协作处理器(Coprocessor)

12. TiDB 集群在本地环境部署时用到的命令

  • tiup playground

13. 基于成本优化器的特点

  • 基于成本的优化器将 CPU、内存、网络、I/O 等资源进行等价的公式转化

14. TiDB-Server 对于 OLAP 查询会有的问题

  • 对于那些 ORAP 中间结果过大的查询,会出现内存过度使用甚至 OM 的问题

15. 关于 TiDB 的 Region 的数据

  • 尽量保证每个 Region 中保存的数据不超过一定的大小,TiKV 默认大小限制为 96MB
  • Region 是 StartKey 到 EndKey 一个左闭右开的区间
  • 当某个 Region 大小超过了某个限制时,TiKV 会把它分裂成两个甚至更多的 Region。
  • 当某个 Region 因为大量的删除请求导致 Region 的大小变得更小时,TiKV 会将两个小的相邻的 Region 合并为一个
  • PD 负责将 Region 尽可能均匀地、离散地分布在集群的所有节点上

16. 存储引擎的特定范畴

  • 支持分布式事务
  • 保证数据不丢失不出错
  • 多副本保障一致性和高可用性
  • 弹性扩容和缩容

17. TiSpark 的特点

  • 可以识别 TiKV 的数据格式、统计信息、索引、执行器等
  • 在面对大批量数据报表和重量级 Adhoc 时提供了可行的方案
  • 只能提供低并发的重量级查询
  • 模型重,资源消耗高

18. TiDB 技术架构的特点

  • 自动分片技术是更细维度弹性的基础
  • 弹性的分片构建了动态的系统
  • Multi-Raft 将复制组更离散
  • 基于 Multi-Raft 实现写入的线性扩展
  • 基于 Multi-Raft 实现跨 IDC 单表多节点写入
  • 去中心化的分布式事务
  • Local Read and Geo-partition
  • 更大数据容量下的 TP 与 AP 融合
  • 数据服务的统一

19. CAP 理论

  • 一致性:所有的节点在同一时间的数据完全一致
  • 可用性:服务在正常响应时间内的可用
  • 分区容忍性:分布式系统在遇到某节点或网络分区故障的时候仍然能够对外提供满足一致性或可用性的服务

20. 哪个客户端可以进行 TiDB 的连接

  • Tiup client
  • mysql

21. 哪些 TiDB 的特性使得其可以支持数据中台

  • 海量存储允许多数据源汇聚,数据实时同步
  • 支持标准 SQL,多表关联快速出结果
  • 透明多业务模块,支持分表聚合后可以任务维度查询
  • TiDB 最大下推机制、以及并行 hash join 等算子,决定的 TiDB在表关联上的优势

22. 关于 TiDB 的 MPP 结构

  • MPP 架构将任务并行地分散到多个服务器和节点上,在每个节点上计算完成后将各自部分的结果汇总到一起得到最终结果
  • 本质上是通过网络与存储成本来置换计算资源
  • MPP 下,TiDB-Server 作为入口节点,通过代价决定是否经由 MPP 模式计算
  • MPP 模式下,TiFlash 作为 MPP 计算节点

23. TiDB 分布式事务

  • 默认乐观事务模型,也支持悲观事务模型
  • 默认隔离级别:Snapshot Isolation,也支持 RC(提交读的隔离级别)

24. TiDB 数据库在 HTAP 的技术方向上已经实现的功能

  • 分布式数据库是在更大数据规模下提供 HTAP 的基础
  • TiDB-Server 最大程度下推算法与 Hash Join 关键算子提供了 OLAP 能力
  • 借助生态,让 Spark 跑在 TiKV 上
  • 行列混合引擎,列式引擎提供了实时写入能力
  • 行列引擎采取 Raft-Base replication,解决了数据同步效率
  • TiDB-Server 既支持标准 SQL,又可以自动路由行列引擎,逐渐形成了一个统一的数据查询服务
  • MPP 并行计算模型解决了多表 Join 场景下的计算节点的扩展性以及并行计算能力

25. Placement Driver 的特性

  • 管理分片的数据分布以及集群拓扑结构等元数据信息
  • 负责 TiKV 节点的调度
  • 通过 Raft 进行三副本复制

26. HTAP

  • 场景的多样性会驱动细分技术的发展,而从使用以及业务副本成本的角度看,又希望数据服务具有统一性
  • 2005年,Gartner 提出了 HTAP 的概念
  • HTAP 数据库需要同时支持 OLTP 和 OLAP 场景
  • 基于创新的计算存储框架在同一份数据上保证了事务的同时又支持实时分析,省去了费时的 ETL 的过程

27. 随着硬件性能的提升,传统的计算与存储强耦合的方式有哪些弊端

  • 计算与存储强绑定,意味着两种资源总有一个是浪费的
  • 我们在对服务器进行选型的过程中,开始纠结是计算型、还是存储型,大大增加复杂度和降低通用性
  • 在云计算场景下,弹性的颗粒度是机器,不能真正做到资源的弹性

28. 分布式技术的主要挑战

  • 如何最大程度实现分治
  • 如何实现全局的一致性,包括全局序列化与全局时钟
  • 如何进行故障与部分失效的容错
  • 如何应对不可靠的网络与网络分区

29. TiDB 的数据分片采用的技术

  • 使用自动分片(动态)而非预先分片(静态)
  • 采取范围(range)分片方式,可以更高效地扫描数据记录,也可以简单实现自动完成分裂与合并,弹性优先,分片需要可自由调度

30. TiDB 数据库三层架构

  • TiDB-Server:支持SQL的计算引擎
  • TiKV:分布式存储引擎
  • Placement Driver:负责元信息管理与调度的引擎

31. NewSQL 技术目前可以认为是哪两种技术的组合

  • 关系型数据库和非关系型数据库

32. 关系型数据库四大特性

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

33. TiDB 事务支持

  • 用户可以一次性写入多个 key-value,而不必关心这些 key-value 是否处于同一个 Region 上,是否在同一个物理节点上
  • TiDB 参考了 Google Percolator 事务模型,并在该模型基础上做了大量的优化与改进
  • 默认隔离级别是 Snapshot Isolation

34. TiDB 数据库的两个比较重要的理论基础

  • 2013年谷歌推出的 Spanner 和 F1 论文
  • 2014年工业级分布式一致性协议实现的 Raft 博士论文

35. TiDB-Server 连接

  • TiDB-Server 是一个对等、无状态的,可横向扩展的,支持多点写入的,直接承接用户 SQL 的入口

36. TiDB-Server 的特性

  • 兼容 MySQL 协议的编码以及解码
  • 每个 TiDB-Server 可以独立地进行 SQL 的执行

37. 传统的数据库分表分库中间件无法支持的特性

  • 强一致的分布式事务
  • 水平扩展
  • 复杂查询
  • 无人工介入的高可用
  • 业务兼容性(低)
  • 多维度支持(不友好)
  • 全局 ID 支持 (不友好)
  • 机器容量(很浪费)

38. 关于 TiDB 数据扩展性

  • 数据支持自动分裂和合并分片
  • TiDB 安装 range 进行分片
  • 数据的存储、访问、复制、调度都是以 Region 为单位
  • 为了保证上层客户端能访问所需要的数据,TiKV 中有一个组件记录 Region 在节点上面的分布情况,也就是说,通过任何一个 key,就能查询到这个 key 所在的 Region,以及这个 Region 所在的存储节点

39. TiDB 的两地三中心容灾方案

  • 支持 RPO 为 0
  • 基于 Raft
  • 支持强一致性

40. 数据库技术发展的内在驱动

  • 业务发展,主要体现在数据容量的持续爆发增长,其中数据容量包括数据存储量、吞吐量和读写QPS
  • 场景创新,体现在数据模型与交互效率,如查询语言、计算模型、数据模型、读写延迟等
  • 硬件与云计算的发展,主要体现在数据架构的变迁上,如计算与存储分离(读写分离)、一体机、云原生等

数据库分布式

下列功能是由 TiKV 或 TiFlash 实现的为?( 选 2 项 )BF
A. 根据集群中 Region 的信息,发出调度指令
B. 对于 OLAP 和 OLTP 进行业务隔离
C. 将关系型数据转化为 KV 存储进行持久化
D. 将 KV 存储转化为关系型数据返回给客户端
E. 配合 TiDB Server 生成事务的唯一 ID
F. 副本的高可用和一致性

关于 TiKV 或 TiDB Server,下列说法不正确的是?C
 A. 数据被持久化在 TiKV 的 RocksDB 引擎中 
 B. 对于老版本数据的回收(GC),是由 TiDB Server在TiKV上完成的 
 C. 两阶段提交的锁信息被持久化到 TiDB Server 中 
 D.Region可以在多个TiKV节点上进行调度,但是需要PD节点发出调度指令

下列哪些模块直接与 TiDB 的事务处理有关?( 选 2 项 )AD
A. KV
B. Parse
C. Schema load
D. Transaction
E. GC
F. start job

关于关系型数据与 KV 的转化,下列说法不正确的是?C
 A. 如果没有定义主键,key 中包含 RowID,Index ID 和 Table ID,都是 int64 类型 
 B. Table ID 在整个集群内唯一 
 C. 如果定义了主键,那么将使用主键作为 RowID 
 D. 不需要为每张表指定主键

下列属于 TiKV 相关功能的是?( 选 4 项 )ACDF

A. 系统参数和元数据信息的持久化

B. 产生 TSO

C. 分布式事务实现

D. MVCC

E. 生成物理执行计划

F. 表统计信息的持久化

关于 TiKV 数据持久化,下列说法不正确的是?C

A. RocksDB 有 2 个实例,分别用来持久化 raft log 和 key value 数据

B. RocksDB 中 WAL 用来保证写不丢失

C. 对于删除操作,只需要在原 key value 数据上标记已删除即可

D. RocksDB 中,除了 Level 0 层的数据,其他 Level 都是单一排序持久化的

下列关于 PD(Placement Driver)架构和功能正确的是?B

A. 访问 PD 集群中的任何一个节点都可以获得 TSO

B. TiKV 会周期性地向 PD 上报状态

C. PD 会周期性地查询 TiKV 的状态,不需要 TiKV 上报,目的是为了高效

D. PD 的调度功能只能平衡 region 的分布,无法对 leader 进行调度

关于 label ,下列说法不正确的是?C

A. label 的本质是个调度系统,可以人为控制 region 副本的存放位置

B. label 需要在 PD 和 TiKV 上进行配置

C. isolation-level 要和数据中心(DC)对应,这样可以获得最大的可用性

D. 如果某个 region 不可用,有可能造成整个 TiDB 数据库不可用

下列关于 DML 语句读写说法正确的是?( 选 2 项 )BD

A. Region Cache 的主要作用是缓存热数据,减少访问 TiKV 的次数

B. 二阶段提交在获取事务开始的 TSO 和提交的 TSO 时,都是由 TiDB Server 完成的

C. schedule 模块采用 latch 来控制当前正在写的数据不被读取

D. 在写操作中,锁信息也会被写入到 RocksDB KV 中

关于 DDL 语句的执行流程,下列说法正确的是?C

A. DDL 语句不可以在 TiDB 中并行执行

同一时刻,不可以有多条 DDL 语句在等待执行

C. 同一时刻,只有一个 TiDB Server 可以执行 DDL 语句

D. 等待执行的 DDL 语句被持久化在 TiDB Server 的存储中

下面属于 HTAP 场景特点的是?(请选择 3 项)CDE
A. 在故障恢复方面可以做到 RPO = 0
B. 支持分区特性
C. 支持在线业务高并发
D. 同时支持 OLTP 和 OLAP 业务
E. 能够读取到一致性的数据

关于 MPP 架构,下列说法不正确的是?B
 A. MPP 架构的中间结果都在内存中 
 B. MPP 架构可以作用于 TiKV 和 TiFlash 上的数据 
 C. MPP 架构目前不支持非等值 join 
 D. MPP 架构可以对聚合、JOIN 等操作加速

下面属于 TiFlash 核心特性的是?(请选择 3 项)CDE

A. 采用行存 + 列存的混合存储方式

B. region 支持 raft 投票和选举

C. TiFlash 采用异步复制来保证和 TiKV 一致

D. 在 TiKV 上写入数据成功后,在 TiFlash 上可以一致性读取

E. CBO 基于成本选择在 TiFlash 或者 TiKV 上执行 SQL

关于 TiFlash 的使用,描述不正确的是?B

A. TiFlash 不善于处理高并发,QPS 一般不应过高

B. SQL 语句执行中,要不然数据完全从 TiKV 中读取,要不然完全从 TiFlash 中读取

C. MPP 中表连接前的过滤和交换完全是在 TiFlash 节点上完成的

D. 在读取 TiFlash 中数据的时候,我们需要通过 TiKV 中的数据确认一致性

对于 TiDB v6.0 新特性描述正确的为?(请选择 3 项)BDE

A. 小表缓存支持 DML 和 DDL 语句操作

B. 内存悲观锁功能可以起到降低网络带宽的作用

C. 当某个 TiKV 实例的 IO 过高,我们可以通过 Top SQL 监控到其上 IO 最高的 5 类 SQL 语句

D. TiDB Enterprise Manager(TiEM)可管理多套集群

E. 我们可以通过 Placement Rules in SQL 功能增加某些重要业务表的副本数.

下列哪些情况不适宜开启小表缓存?(请选择 2 项)AD

A. 表数据量小于 128 MB

B. 频繁读取的热点小表

C. 只读的热点小表

D. 读取和修改都非常频繁的热点小表

下面对于 TiDB Cloud 描述,正确的为?(请选择 4 项)ADEF
A. 属于 DBaaS 服务
B. 数据属于客户自己和云服务厂商
C. 都具有 VPC Peer
D. 属于多租户架构
E. 不仅支持自动备份还支持手动备份
F. 支持一定的删除后还原

关于 Developer Tier 和 Dedicated Tier,下面说法正确的为?(请选择 2 项)CD
A. 都支持 VPC Peer
B. 都支持横向扩容和缩容
C. 都支持 TiFlash 节点
D. 都具有多租户特性
E. 都具有高可用性

TiDB数据库要点及练习相关推荐

  1. centos7开放端口访问不了_基于TiUP cluster 在centos7系统上模拟生产环境部署TiDB数据库...

    概述 今天主要来体验下TiDB 最小的完整拓扑的集群,参照 TiUP 最小拓扑的一个 YAML 文件来部署 TiDB 集群,下面一起来看看吧~ 一.环境要求 最小规模的 TiDB 集群拓扑: 部署主机 ...

  2. tidb数据库_异构数据库复制到TiDB

    tidb数据库 This article is based on a talk given by Tianshuang Qin at TiDB DevCon 2020. 本文基于Tianshuang ...

  3. TiDB数据库备份恢复与数据迁移

    TiDB数据库备份恢复与数据迁移 数据迁移 使用 mydumper/loader 全量导入数据 mydumper/loader 全量导入数据最佳实践 某次导入示例,以及相关的配置 从 MySQL 导出 ...

  4. TiDB PCTP(PingCAP 认证 TiDB 数据库专家) 认证考试高分攻略

    TiDB PCTP(PingCAP 认证 TiDB 数据库专家) 认证考试高分攻略 战果 利用下班时间学习了大概2周后,参加2022年3月23号的PCTP认证考试,63分通过(总分70分,通过线42分 ...

  5. 大数据基础教程丨TiDB数据库从入门到实践

    TiDB 是一款定位于联机事务处理/联机分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致性的 ...

  6. TiDB数据库schema设计之表结构设计

    TiDB数据库schema设计之表结构设计 Schema的KV映射原理 聚簇表和非聚簇表 非聚簇表的写热点问题 分区表 TiDB的数据类型 TIDB的自增ID 聚簇表自增ID的写热点问题 Schema ...

  7. 猿创征文|一文带你了解国产TiDB数据库

    写在前面 很多小伙伴在日常接触中接触国产数据库很少,大部分在开发应用上使用的是由甲骨文,微软等公司提供了MySQL,SQLserver.普通程序员很少能用到newSQl数据库,TiDB就是一种newS ...

  8. 猿创征文 | 国产数据库实战之TiDB 数据库快速入门

    猿创征文 | 国产数据库实战之TiDB 数据库快速入门 一.系统检查 1.检查系统版本 2.查看本地IP地址 3.TiDB集群介绍 二.快速部署本地测试集群 1.安装 TiUP工具 2.声明全局环境变 ...

  9. jmeter压测TIDB数据库

    参考:jmeter压测TIDB数据库 具体操作步骤: 前提:需要下载mysql jar包. 下载地址: 链接:mysql-connector-java.jar 把 mysql-connector-ja ...

最新文章

  1. hdu 3635(并查集+路径压缩变形)
  2. mysql未提交事务sql_MySQL如何找出未提交事务的SQL浅析
  3. 哈尔滨工程大学迎来80后副校长
  4. 开源搜索引擎solr4.0+tomcat7实现中文分词
  5. 计算机二级学校查询,计算机等级考试查询系统
  6. JavaScript浏览器对象模型
  7. 【银行】2015农行软开 笔试+面试 小记
  8. VC 6.0下载 VC 6.0英文版下载 Visual C++ 6.0 英文企业版 集成SP6完美版(最新更新地址,百度网盘)...
  9. Python和Ruby两大语言全方位对比
  10. 有哪些值得推荐的数据可视化工具?
  11. Oracle中文乱码(中文变问号?)解决方法---简单粗暴高效
  12. 常用技术网站2017-2018
  13. Redhat之SSH
  14. UNE BASE SIMPLE MAIS PARFAITE POUR SENTENCE EMBEDDINGS(一个简单但很难超越的Sentence Embedding基线方法)
  15. 剑指 Offer II 060. 出现频率最高的 k 个数字
  16. 联想电脑开机卡在logo界面
  17. 工具篇 -- joda-time
  18. 自定义EditText的无障碍描述(不读hint)
  19. ko文件 、insmod命令
  20. 压缩包文件如何删除解压密码

热门文章

  1. 5 款非常好用的 Docker 工具
  2. 清华大学刘知远:好的研究想法从哪里来?
  3. 用二进制数字串生成二维码图片
  4. 计算机控制电机启动接线图,用PC机并口控制一个简单电路
  5. BMP文件转YUV文件_C语言实现
  6. 前端—微信小程序开发
  7. CSDN保存草稿后,在哪里找到草稿
  8. AI/计算机志愿填报指南发布!最受关注的终极八问,参考答案在此
  9. Stata:时间虚拟变量还是时间趋势项?
  10. 模拟退火算法SA求解连续函数极值