求阙厅

春有百花秋有月,夏有凉风冬有雪。若无闲事挂心头,便是人间好时节。

【置顶】知识地图

分布式基础 一级目录 一级目录 三级目录 分布式基础 系统模型 拜占庭将军问题 时间与事件顺序 分布式网络模型 分布式故障模型 ...

NoSQL 概述

分析 高可用的分布式 KV 存储

分布式数据库NoSQL是一种非关系型数据库,采用了键值对、文档、列族、图等数据模型,具有高度的可伸缩性和灵活性,用于大规模存储和处理分布式数据。 优势与特性 NoSQL数据库适用于互联网应用、物联网、日志存储等应用场景,特别是需要处理大规模数据和高并发访问的场景。 对比 关系型数据库 非关系型数据库 ...

Hbase 概述

分析 高可用的分布式 KV 存储

HBase是非常热门的一款分布式KV数据库系统,国内各大公司都使用HBase存储海量数据。本质上HBase是一个稀疏的、高可靠性、面向列、可伸缩的分布式存储系统。 历史背景 2004年-2006年,Google发表了风靡一时的“三篇论文”-GFS、MapReduce、BigTable。 GFS: 揭示了如何在大量廉价机器基础上存储海量数据。 MapReduce:论述了如何在大...

Graph 概述

图数据库是NoSQL(非关系型)数据库的一种实现,以实体及其关系为主要存储对象的数据库系统,是一个使用图结构进行语义查询的数据库。 基本概念 图(Graph):指关系图 顶点(Vertex):一般指实体。比如:用户、文章、视频等。 边(Edge):一般指顶点之间的关系。比如:用户关注了用户、用户发表了文章等。 属性(Property):顶点或边都可以拥有对应的属性。 ...

ByteGraph

基础架构 ByteGraph整体架构自上而下分为两层: GQ查询层 GQ 主要工作是做查询的解析和处理: parser阶段:把查询语言解析成一个查询语法树,为了提升parser效率,BG内部设置了查询计划缓存。 生成查询计划:把步骤1的查询语法树按照一定的查询优化策略(RBO & CBO)转成查询计划。 执行查询计划:与GS层交互,需要理解存储层分par...

Hbase 概述

分析 高可用的分布式 KV 存储


RocksDB引擎

分析 高可用的分布式 KV 存储

RocksDB是Facebook在Google开源key-value存储LevelDB的基础上开发而来的单机存储引擎。LevelDB是一个精简基于LSM tree的数据库,而RocksDB在LevelDB的基础上进行了大量的优化和功能的添加,比如将LevelDB的单线程compaction改成多线程compaction,提高写入效率;实现了事务的功能,引入了列簇(column family)...

MySQL 系列 两阶段提交

MySQL 技术内幕:InnoDB存储引擎

日志是 MySQL 数据库的重要组成部分。日志文件中记录着 MySQL 数据库运行期间发生的变化,也就是说用来记录 MySQL 数据库的客户端连接状况、SQL 语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复。 MySQL整体来看,其实就有两块:一块是Server层,它主要做的是MySQL功能层面的事情;还有一块是引擎层...

MySQL 系列 OrderBy使用技巧

探寻 InnoDB中 OrderBy的实现机理...

假设这个表的部分定义是这样的: 1 2 3 4 5 6 7 8 9 CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT ...

MySQL 系列 Count使用技巧

探寻 InnoDB中 Count的实现机理...

先说结论: 按照效率排序的话,count(字段)< count(主键id) < count(1)≈count(*),所以建议,尽量使用count(*)。 count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count()函数的参数不是NULL,累计值就加1,否则不加。最后返回累计值。所以count(*)、count(主键id)和count(1)都表示返回满足条件的...