tidb笔记

author author     2022-12-08     419

关键词:

TiDB笔记

1.功能介绍

  • TiDB Server集群(无状态,不存储数据)

    • 处理客户端发送的sql语句,进行解析编译优化,生成执行计划
    • 如果是insert要将表的数据转换为key和value的形式,向TiKV存储
    • 执行online DDL
    • 每隔十分钟左右进行垃圾回收(GC)将历史版本数据删除
    • 可水平扩展,增强并发处理能力
  • TiKV

    • 存储数据(数据持久化),存储引擎集群,默认创建三副本(只有一个leader可以读写,其他都不可以读写,其他的跟着leader变),高可用性

    • 存region(行存)

      • rocksdb单机的Key-Value存储引擎(内部使用这个数据库保障TiKV的数据持久化)
      • rockdbkv(rocksdb实例):将表数据转换为key-value的形式存储在rockdb实例中
      • rockdbraft(rocksdb实例):存储表的增删改等指令
      • Raft协议(保障了三副本的强一致性)
      • MVCC(保障了其他操作可以正常执行,例:读的是修改前的数据)
      • Transaction事务层(支持事务)
      • 算子下推实际上是一个分布式计算的模型
  • TiFlash

    • 存储数据,存储引擎集群
    • 存region(列存,擅长统计分析数据)
    • TiKV行存更多承载在线交易型业务OLTP(事务型)
    • TiFlash更多承载分析型业务OLAP(暴力扫描)
    • HTAP(OLTP,OLAP)支持
  • region : 96M->144M

    • 数据库表切分,分布存储在TiKV
  • PD:PlacementDriver

    • 集群的大脑
    • 存储想要的表在TiKV,TiFlash的对应位置(这些信息叫做:region 的元数据:表在哪些TiKV,TiFlash上分布信息)region与TiKV,TiFlash的对应关系
    • 存储查询每条sql执行的开始时间,结束时间(TSO对时间进行标识,计时器:对一个事务有开始的TSO有结束的TSO)
  • 体系特点:

    • 水平扩容或缩容
    • 金融级高可用
    • 实时HTAP
    • 云原生的分布式数据库
    • 兼容MySQL5.7协议

  • 题目:

2.TiDBServer详情

  • TiDB server 架构

    • 功能:

      • 处理客户端的连接(Protocol Layer)

      • SQL 语句的解析和编译(Parse,Compile)生成执行计划交由Excutor进行执行

        • AST语法树
      • 关系型数据与 KV 的转化

        • 聚簇表:标号+原表主键做主键(主键唯一)

          • region(默认大小96M->144M,超出分裂,分布式存储在TiKV中)

        • 非聚簇表(自动生成主键)

      • SQL 语句的执行

        • DistSQL将复杂sql的执行计划转换为单表计算任务组合发送给TiKV,涉及一张表涉及多个region
        • 简单查询,点查走KV就不走DistSQL
        • Transaction将开始时间和结束时间(TSO)发送给PDClient
      • 在线 DDL 的执行

        • 对于整个tidb数据库来说,同一时刻只能有一个TiDBServer做DDL操作(worker)
        • owner执行job,不是固定的,有任期时长,轮换当owner,谁当owner谁复制执行job队列的DDLJob
        • schema load将最新的所有的表信息同步到内部的缓存中,好根据这些信息执行jobqueue里面的job
        • TIKV持久化存储
      • 垃圾回收(定期清理过期版本的数据)

        • GCLifeTime(默认十分钟)保存当前时间到savepoint时间的数据,其他的进行清除
      • 热点小表缓存 V6.0 (cacheTable)进一步热点缓存区

        • 解决数据可能不一致的问题(缓存租约,既存在使用时间,租约时间内,可以读,无法进行写操作)

        • 应用:

          • TiDB 对于每张缓存表的大小限制为 64 MB
          • 适用于查询频繁、数据量不大、极少修改的场景
          • 在租约 (tidb_table_cache_lease) 时间内,写操作会被阻塞
          • 当租约到期 (tidb_table_cache_lease) 时,读性能会下降
          • 不支持对缓存表直接做 DDL 操作,需要先关闭
          • 对于表加载较慢或者极少修改的表,可以适当延长 tidb_table_cache_lease 保持读性能稳定
      • TiDB缓存

        • 默认使用TIDB数据库的所有内存

        • 使用场景

        • tidb_mem_quota_query限制每条sql占用的缓存

        • oom-action决定超出了上面缓存以后的操作

  • 题目:

大数据大数据组件tidb原理+实战篇(代码片段)

文章目录1.TiDB引入1.1.数据库技术发展简史1.2.从MySQL到TiDB1.3.TiDB概述1.4.数据库种类简介2.TiDB架构特性2.1.TiDB整体架构2.2.TiDB核心特性2.3.存储和计算能力3.TiDB安装部署3.1.TiDB-Local单机版3.2.TiDB-Docker集群版4.TiDB实践案例4.1.TiDB-SQL操作4.2... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

猿创征文|国产数据库实战之使用Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-comp... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

猿创征文|国产数据库实战之使用Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-comp... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

猿创征文|国产数据库实战之使用Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-comp... 查看详情

tidb认证含金量

参考技术Atidb认证含金量高。目前TiDB主要有两个认证:PCTA:TiDB数据库专员PCTP:TiDB数据库专家 查看详情

tidb文档的网址

https://docs.pingcap.com/zh/tidb/stable 查看详情

tiup部署tidb数据库集群

...x版本)适用场景:利用本地Mac或者单机Linux环境快速部署TiDB测试集群,体验TiDB集群的基本架构,以及TiDB、TiKV、PD、监控等基础组件的运行。1、创建tidb用户组及用户[root@tidbhome]#groupaddtidb[root@tidbhome]#useraddtidb-r-m-gtidb2、关闭防火... 查看详情

tidb在微众银行核心批量场景的实践

...行资深数据库架构师黄蔚的分享整理而成,主要阐述TiDB在微众银行的应用实践,包括微众银行选择TiDB的背景和TiDB的部署架构,以及TiDB在贷款核心批量场景的应用,最后分享了基于TiDB优化方案的最佳实践和未来... 查看详情

tidb查询优化及调优系列tidb查询计划简介(代码片段)

「TiDB查询优化及调优」系列文章将通过一些具体的案例,向大家介绍TiDB查询及优化相关的原理和应用,在上一篇文章中我们简要介绍了TiDB查询优化器的优化流程。查询计划(executionplan)展现了数据库执行SQL语句... 查看详情

tidb孵化器项目发起,快来孵化你的技术理想

TiDB社区由开发者、用户和TiDB生态中的合作伙伴组成,致力于构建“面向未来的数据库”,以及打造TiDB的可持续发展生态。在整个社区的不断努力和帮助下,TiDB的生态也在不断发展,越来越多的开源项目成为TiDB大家庭的一员。... 查看详情

tidb整体架构

参考技术ATiDB整体架构可参考下图节点内部之间的通信通过gRPC完成。除了上面提到的几种类型的节点外,TiDB还提供了一些数据同步的工具。 查看详情

猿创征文|国产数据库实战之tidb数据库快速入门(代码片段)

猿创征文|国产数据库实战之TiDB数据库快速入门一、系统检查1.检查系统版本2.查看本地IP地址3.TiDB集群介绍二、快速部署本地测试集群1.安装TiUP工具2.声明全局环境变量3.快速部署TiDB集群三、连接TiDB数据库1.新开一个session以访问T... 查看详情

tidb-tidb用户角色权限管理(代码片段)

一、TIDB中的权限我们都知道TIDB是兼容MySql的,对于TiDB的权限管理和MySql中的权限管理也是兼容的,所以说我们完全可以将MySQL中的那一套拿来到TIDB中,是完全适用的。另外TiDB将用户账户及角色存储在mysql.user系统表里... 查看详情

TiDB 是不是计划支持窗口函数?

】TiDB是不是计划支持窗口函数?【英文标题】:DoesTiDBplantosupportwindowfunctions?TiDB是否计划支持窗口函数?【发布时间】:2018-09-2115:50:57【问题描述】:TiDB是一个混合事务和分析数据库。对于分析查询,我发现我经常需要窗口函... 查看详情

tidb-tidb集群的扩容和缩容及tiup指令说明(代码片段)

一、TIUP工具简介前面介绍了使用TIUP搭建TIDB集群,本篇文章详细介绍下使用TIUP对集群进行扩容和缩容。在面对双十一这种流量突峰的场景,我们平常的TIDB集群有可能承受不住,因此需要提前进行扩容,例如增加ti... 查看详情

tidb部署

此为单节点安装1、下载tidb包2、解压包,进入目录启动:    1、启动pd没问题    2、启动tikv因为使用tidb在CENTOS7平台,需要的GLIBC包要2.14和2.17版本,so....../tikv-server:/lib64/libc.so.6:version`GLIBC_2.17‘notfound 查看详情

tidb-使用tidblightning迁移mysql数据至tidb中(代码片段)

一、TiDBLightning介绍TiDBLightning是一个将全量数据高速导入到TiDB集群的工具,目前支持Mydumper或CSV输出格式的数据源。你可以在以下两种场景下使用Lightning:迅速导入大量新数据。备份恢复所有数据。TiDBLightning主要包含两... 查看详情

tidb参数解释

...https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidbTiDB--store用来指定TiDB底层使用的存储引擎默认:"goleveldb"你可以选择"memory","goleveldb","BoltDB"或者"TiKV"。(前面三个是本地存储引擎,而TiKV是一个分布式存储引擎)例如,如... 查看详情