TiDB初步概念
阅读官方文档画以下路线图:
储存:
rockDB用于单机数据固化:完全理解
raft用于分布式数据同步:完全理解
最终对外展示一整个完全有序的Key-Value序列:完全理解
重点:有序,就可以随机访问了,事关查询速度.
Key-Value :在这里K-V并不是死板的KV,由于有序的概念在里面,同时KV都是byte的数据结构,故逻辑上的键一般存在KEY里,但逻辑上的值也可能存在KEY里.
整个储存是为了快速定位而设计的.
计算:
就是如何利用超大有序K-V结构来实现关系数据库,很重点.
行储存:Key:表前缀_行前缀_表ID_行ID Value: 字符串化的一行数据:完全理解
这个储存可以直接找到行,在有序的情况下也可以快速全表扫描.
索引:Key:表前缀_索引前缀_表ID_索引ID_(列名值) Value: rowID, 完全理解
可以通过列名+值直接找到rowID,在唯一索引情况下,复杂度恒为常数.
Key:表前缀_索引前缀_表ID_索引ID_列名值_主键 Value: NULL, 敲黑板
用于非唯一索引,在查询给定(列名值)的情况下,可以把范围缩小到所有主键所在的逻辑连续区域.
但具体怎么缩小,还没想通,估计是首先定位第一个索引,然后next读取完,
目前不理解如何定位到第一个索引,直接构造Key明显行不通,但随意猜测主键也挺扯淡,
又可能是查询KEY的分区记录,可以找到符合构造前缀的第一个KEY,然后复杂度就是N(索引数)了
略过了:分布式schema更新.
待继续..
TiDB初步概念的更多相关文章
- 学习笔记:MySQL数据库初步 概念
数据库 什么是数据库,数据库就是对大量信息进行管理的高效的解决方案,按照数据结构来组织.存储和管理数据的载体.而我们常说的数据库可以分为关系型和非关系型数据库. 关系型数据库 这里说的关系型数据库,是 ...
- C#依赖注入-初步概念了解
维基百科说:"依赖注入是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分.该模式分离了客户端 ...
- linux 时钟源初步分析linux kernel 时钟框架详细介绍
初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB ...
- 关于docker
摘要: 最近很多阿里内部的同学和客户私信来咨询如何学习 Docker 技术.为此,我们列了一个路线图供大家学习Docker和阿里云容器服务.这个列表包含了一些社区的优秀资料和我们的原创文章.我们会随着 ...
- HTML5能取代IOS原生应用吗
介绍 移动应用程序(App)和HTML5都是目前最火的技术,二者之间也有不少重叠之处.在移动设备浏览器里运行的html5的web页面,也可以重新打包成不同平台上运行的app.目前很多浏览器都有很好的跨 ...
- tiny学习3
这几天在埋头写自己的个星期!而且由于它是基于事件发生的次序(小时就把我的文件导出来了--呵呵.在阅读本文之前,请先看看我Blog里转贴的<TinyXML学习笔记>,相信它能给各位一个关于T ...
- Stanford机器学习---第六讲. 怎样选择机器学习方法、系统
原文:http://blog.csdn.net/abcjennifer/article/details/7797502 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- tiny xml 使用总结
这几天在埋头写自己的3D文件浏览器(稍后发布),突发奇想的要把自己的内部格式转化成XML,于是,把以前在研究所时用过的ExPat翻了出来.ExPat是基于事件的XML解释器,速度挺快的,但结构方面有点 ...
- 【C语言探索之旅】 第三课:你的第一个程序
内容简介 1.课程大纲 2.第一部分第三课:你的第一个程序 3.第一部分第四课预告:变量的世界 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个 ...
随机推荐
- maven构建web项目,用jetty测试的配置pom.xml
maven构建web项目,用jetty测试的配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
- Eclipse手动添加web.xml
当创建web工程时,没有自动创建web.xml 这时候就需要手动添加web.xml 该怎么做呢 右键项目,点击java EE Tools 其中点击Genertate Deployment Descri ...
- 'JetEntityFrameworkProvider' could not be loaded 解决办法
原因:JetEntityFrameworkProvider引用的EntityFramework与你使用的版本不一致,造成程序加载这个DLL失败. 解决办法: 使用Reflect软件JetEntityF ...
- 关于footer 小于一屏还要在底部显示的思考
首先想到了页面是动态的 就是js 计算 但是有一个简单的方法就是 运用定位 1 footer 的祖先元素没有定位属性 absoulite (这样他就会相对于文档定位) left:0 bottom : ...
- 关于Jmeter的简单认识
Jmeter初识 Apache Jmeter概述 是100%的纯java桌面应用,用于压力测试与功能测试,它开始被设计用于web应用测试,后来扩展到其他测试领域,通过线程租来驱动多个线程运行测试脚本, ...
- 强力推荐!那些你不能错过的 GitHub 插件和工具
以代码托管平台起家的 GitHub 网站,已然成为全球程序员工作和生活中不可或缺的一份子.从优秀的企业,到优秀的程序员,都将自己最优秀的代码作品存放在这片开源净土里,供彼此学习交流.\\LS--201 ...
- vue-lazyload懒加载插件的使用
vue-lazyload懒加载插件的使用其实很简单,不想vue-loader官网用法写的那么简单.下面代码演示: 1.安装插件 npm install vue-lazyload --save 2. ...
- 简单测试 Kotlin native 性能
准备 一直使用kotlin JVM平台开发服务器的应用,最近想试试看 Kotlin native的性能. 我使用的是 kotlin native 1.3.21,要使用他非常的简单,下载最新的 IDEA ...
- GDAL——命令使用专题——gdalsrsinfo命令
GDAL——命令使用专题——gdalsrsinfo命令 前言 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库. ...
- 该 URL“XX”无效。它可能指向不存在的文件或文件夹,或者是指向不在当前网站中的有效文件或文件夹
当使用SharePoint SPWeb.Files.Add()方法往文档库中写入文件时,报 该 URL“XX”无效.它可能指向不存在的文件或文件夹,或者是指向不在当前网站中的有效文件或文件夹, 原因 ...