当前位置: 首页 > news >正文

一个网站需要怎么做适合大学生做的网站有哪些

一个网站需要怎么做,适合大学生做的网站有哪些,万网阿里云域名查询,网站 防止采集目录 1. DML语句读流程概要 2. DML语句写流程概要 3. DDL 流程概要 4. SQL的Parse和Compile 5. 读取的执行 6. 写入的执行 7. DDL的执行 8. 小结 1. DML语句读流程概要 TiDB Server接收sql并处理,TiKV负责持久化数据,PD提供TSO和Region的数据字典…

目录

1. DML语句读流程概要

2. DML语句写流程概要

3. DDL 流程概要

4. SQL的Parse和Compile

5. 读取的执行

6. 写入的执行

7. DDL的执行

8. 小结


1. DML语句读流程概要

TiDB Server接收sql并处理,TiKV负责持久化数据,PD提供TSO和Region的数据字典信息

  • Protocol Layer:接收sql
  • PD Client到PD节点获取STO
  • Parse:词法解析、语法解析,将sql解析为AST语法树
  • Compile:区分点查和非点查,生成执行计划
  • Execute:拿着执行计划问PD在哪个TiKV Region读取想要的数据
  • 读取数据后交由Execute,返回给用户

2. DML语句写流程概要

  • Protocol Layer:接收sql
  • PD Client到PD节点获取STO
  • Parse:词法解析、语法解析,将sql解析为AST语法树
  • Compile:区分点查和非点查,生成执行计划
  • Execute:拿着执行计划问PD在哪个TiKV Region读取想要的数据
  • 读出来的数据放在memBuffer中进行修改,当用户发起commit的时候,进入两阶段提交
    • 第一阶段:prewrite,将内存中修改的信息和锁信息写入TiKV
    • 第二阶段:commit,写提交信息,将锁清理掉,获取结束TSO
  • 二阶段提交完成后,返回给用户提交成功数据不会丢了

3. DDL 流程概要

修改表定义、加索引等等都是DDL

  • 用户发出DDL语句
  • TIDB Server中的start job接收DDL语句
  • 将DDL放入TiKV中的job queue中(添加索引是放在 add index queue中)
  • TIDB Server谁是owner角色谁就执行DDL,owner中的worker去job queue(先进先出)中取DDL去执行
  • 执行完后把该job放入history queue中

4. SQL的Parse和Compile

  • Protocol Layer:接收sql
  • PD Client:去PD异步获取TSO
  • Parse:词法分析LEX,语法分析YACC,将sql转化成AST语法树
  • compile:
    • preprocess:检测sql合法性,名称是否正确,一些绑定信息等,判断是否是点查
    • 如果是点查(PointGet)的话直接就执行,节约了优化的工作
    • 如果是非点查的话,进入优化流程:
      • ①逻辑优化:关系代数、等价交换等一些规则将sql语句进行一些逻辑的变换,比如把外连接转化为内连接等等
      • ②物理优化:基于逻辑优化的结果结合相关的统计信息(行数、列的选择度、直方图等等)选择最优的算子,如何去TiKV中好的效率最高的取得数据
  • 编译完成后生成物理执行计划,拿着物理执行计划去TiKV中取数据

5. 读取的执行

当Executor收到执行计划后,Executor做两件事:

  • ①从information schema(缓存中,是最新的)中获得元数据(表名、列名等)
  • ②要修改的数据对应Key在所在的Region以及Region所在的TiKV,第一次会从PD中获取Region的位置,然后缓存在TiKV Client中的region Cache中,如果region Cache的信息过期了(back off),访问的时候会再次从PD中读取最新的信息到region Cache中

经过了以上过程,获得了表的元数据以及Key所在的Region和TiKV

Executor读取数据:

  • 如果是点查,KV模块就通过TiKV Client直接读取数据
  • 如果是非点查(复杂sql语句)DistSQl模块会将复杂的sql转换成多条对单表的查询语句,然后通过TiKV Client去TiKV取数据

TiKV接收到请求后首先会构建一个快照snapshot

点查和非点查都会进入UnifyRead Pool线程池,按照优先级执行查询,到RocksDB kv去读取数据

一部分过滤和聚合在TiKV中做,叫coptask,还有一部分在TiDB中(比如三张表连接,三张表散落在3个TiKV中,先把数据读到TiDB内存中再做表连接)叫root task

6. 写入的执行

        前面的读取流程是一样的,从读出数据开始,把需要修改的数据读到memBuffer中,用户commit后进入两阶段提交

        第一阶段:prewrite,Transaction从memBuffer中一行一行读取数据修改数据,通过KV和TiKV Client写到TiKV中并加锁

  • 写请求发送给Scheduler模块(协调事务并发写入的冲突,并将收到的修改操作向下写入),同时写入同一个Key的时候,谁持有Latch谁就可以写数据,其他的需等待Latch
  • 然后到RaftStore,将写请求转换为raft log,此时会在本地RocksDB raft持久化raft log,并把raft log发送给其他节点,然后Apply模块把读取rocksdb raft log应用到rocksdb kv中持久化存储,然后反馈写入成功。

        第二阶段:commit,获取结束TSO,写提交信息,清理锁

7. DDL的执行

  • Protocol Layer接收DDL,经过Parse和Compile,到达start job
  • start job会检查自己所在的TiDB Server是不是owner
  • 如果是owner则直接给workers执行,如果不是就会把DDL做成一个job放到TiKV的job queue中持久化(添加索引放在add index queue中)
  • Schema load:将最新的表的元信息载入到TiDB Server
  • owner中的worker会定期去查看job queue,当job queue中有job的时候workers就根据元信息执行DDL(Job queue 和 add index queue 中的语句可以并行执行)
  • 执行完毕后把job放在history queue中

owner节点是轮询的,由PD节点控制

8. 小结

  • DML 语句读写流程
  • DDL语句的执行流程

来自TiDB官方资料 

http://www.yayakq.cn/news/239444/

相关文章:

  • wordpress搭建商城网站网站群建设代理
  • 公司网站开发需求文档网站开发需要客户做什么
  • 网站建设公司优惠中微信客户端网站建设
  • 网站未备案做经营被罚款旅游小程序哪家做得好
  • 软件开发培训温州seo关键词
  • 福田做网站的wordpress 赞赏
  • 杨凌企业网站开发公司网站模板免费下载
  • 微信网站建设企业wordpress 330
  • 什么是网站二级目录目前做系统比较好的网站
  • 网站服务器ipv6国内公司网站需要备案吗
  • 租赁网站空间更换怎么做网页美工设计教案网页元素设计
  • 网站建站建设价格禁用wordpress默认编辑器
  • 域名注册网站免费有什么可以做兼职的网站
  • 灰色行业推广排名优化公司哪家好
  • 建设部网站公示公告安全用wordpress建立的网站
  • 绵阳的网站建设公司哪家好Django可以做门户网站吗
  • 网站keywords多少字wordpress标签页固定连接以.html后缀结尾
  • 建设网站 后期的提成方案一般通过微信号添加的微信好友
  • go语言 做网站百度权重10的网站
  • 江西做网站公司推荐定制型网站建设
  • 企业网站制作的书wordpress 加入视频
  • 网站改版竞品分析怎么做营销型品牌网站建设价格
  • 做智能网站系统下载地址网站数据库太大搬家还原500错误
  • pc网站建设哪个好电脑端网页设计尺寸
  • 网站移动页面怎么做wordpress域名设置
  • 试描述一下网站建设的基本流程图上海的所有公司
  • 网站编程基础沈阳模板网站制作
  • 华宁网站建设godaddy 同时安装dedecms和wordpress
  • 惠州网站建设模板合作软件开发外包公司的设计一般多少钱
  • 床上做受网站网站建设兆金手指下拉