数据库架构
文章平均质量分 92
Aiky哇
专注于数据库、go、性能优化,对待当下的态度,决定你未来的高度
展开
-
数据库主从延迟导致查询不准确的解决思路
当数据达到一定量的时候,数据库会成为整个系统的瓶颈,一般采取的优化策略为读写分离,数据库通过分主库从库从而实现读写分离(写请求操作主库,读请求操作从库);1、实现固然重要,但更为重要的是思路;2、很多底层的原理与思想是通用的。转载 2022-12-29 21:59:53 · 491 阅读 · 0 评论 -
StoneDB 2.0 调研:架构解析内存引擎详细设计
数据在加载到基于列的内存引擎之前会被压缩和编码,但是并非所有类型的数据都适合编码和压缩。原创 2022-09-24 17:23:54 · 794 阅读 · 0 评论 -
数据库查询优化器,RBO优化规则介绍及示例
数据库查询优化器是针对于sql经过解析后生成的ast表达式树的。目的是能够降低sql执行计算量,简化计算。传统数据库中,查询优化是很复杂的,大体上可以分为RBO和CBO,其中CBO的收益性不确定,需要进行代价估算,依赖的数据统计会比较多。而RBO规则优化在不需要了解数据统计信息的前提下,可以明确提升sql执行计划的查询性能。现在的数据库厂商大多使用的是RBO+CBO或者只用CBO的架构。其实只用CBO更主流一些,TIDB,PolarX都在用,只用cbo搜索空间相对更完整,优化结果更接近全局最优。原创 2022-08-19 17:21:14 · 1888 阅读 · 0 评论 -
从 Clickhouse 到 Snowflake: MPP 查询层
导语 | 伴随着Snowflake的成功,重新激活了数据分析市场,大大小小的创业公司不断创立,各种OLAP的开源产品层出不穷。其中,ClickHouse凭借优秀的性能在用户行为分析、ABTest、在线报表等多个领域大放异彩,但其在功能特性、易用性等方面都还有较多不足。同时,在OLTP、对象存储、Elasticsearch、MongoDB等系统中累积了大量数据和分析需求,不能较好的得到满足。因此,我们希望以Clickhouse为基础,借鉴Snowflake的设计思路,打造一款高性能的云原生OLAP数仓,为用户转载 2022-07-13 17:31:49 · 465 阅读 · 0 评论 -
寒冬之下持续吸金,蛰伏30年的国产数据库终迎黄金时代?
作者|真梓(微信ID:315159284)Ray(微信ID:raylazy)编辑|石亚琼把冷板凳坐热的不仅有国内的半导体企业,还有一众国产数据库厂商。36氪不久前统计,在2020-2021年获得融资的国产数据库公司超过40家。仅2021年一年,获得新一轮融资的企业就多达20家。这股风潮一直延续到2022年。近期,36氪分别报道了云原生实时数仓厂商「飞轮科技」天使轮和天使+轮获超3亿元融资,以及分布式数据库和AI PaaS平台「天云数据」数亿元D轮融资的消息。值得一提的是,拿下超3亿元融资的「转载 2022-05-18 17:09:48 · 3204 阅读 · 0 评论 -
mysql握手链接,服务端到底发过来了什么?
目录mysql客户端与服务端的交互连接方式通信过程mysql认证包报文第一次握手报文第二次握手报文第三次握手报文mysql数据包格式参考 最近工作关系,想能不能增加mysql每次传输数据的行数来提升传输数据性能。所以最近开始研究mysql的数据传输协议。mysql客户端与服务端的交互连接方式mysql的主要连接方式有几种:SOCKET连接(Linux)目标 启动选项 默认值SERVER --enable-named-pipe --..原创 2022-04-08 15:51:03 · 1103 阅读 · 0 评论 -
深入TiDB:解析Hash Join实现原理
所谓 Hash Join 就是在 join 的时候选择一张表作为 buildSide 表来构造哈希表,另外一张表作为 probeSide 表;然后对 probeSide 表的每一行数据都去这个哈希表中查找是否有匹配的数据。根据上面的定义,看起来 Hash Join 貌似很好做,只需要弄一个大 map 然后遍历 probeSide 表的数据进行匹配就好了。但是作为一个高效的数据库, TiDB 会在这个过程做什么优化呢?所以在阅读文章前先带着这几个疑问:哪张表会成为 buildSide 表或 pro转载 2022-03-29 17:55:50 · 1008 阅读 · 0 评论 -
向量化执行引擎是怎么玩的?
在比较前沿的数据库中,比如cilckhouse,polar-x,TDSQL,都提到了一个比较新的词汇,叫向量化执行引擎。向量化执行引擎似乎已经成为了主流数据库执行器的唯一版本答案。所以本篇博客来介绍数据库的向量化引擎,什么场景,什么需求,什么目标,什么东西干了什么事。...原创 2022-03-09 17:56:21 · 6999 阅读 · 0 评论 -
mysql8.0 hash join源码分析
hash_join_chunkHashJoinChunk是用来存储行并落盘的类型,表分区成小文件时也可以用。将列写入 HashJoinChunk 时,我们使用 StoreFromTableBuffers 将必要的列转换为适合存储在磁盘上的格式。方便的是,StoreFromTableBuffers 创建了一个连续的字节范围和相应的长度,可以轻松有效地将其写到文件中。从文件中读回行时,LoadIntoTableBuffers() 用于将行放回表记录缓冲区。具体用法如下:HashJoinCh原创 2021-10-13 16:42:51 · 616 阅读 · 0 评论 -
mysql8.0的hash join算法及其优化
概述&背景MySQL一直被人诟病没有实现HashJoin,最新发布的8.0.18已经带上了这个功能,令人欣喜。有时候在想,MySQL为什么一直不支持HashJoin呢?我想可能是因为MySQL多用于简单的OLTP场景,并且在互联网应用居多,需求没那么紧急。另一方面可能是因为以前完全靠社区,这种演进速度毕竟有限,Oracle收购MySQL后,MySQL的发版演进速度明显加快了很多。HashJoin本身算法实现并不复杂,要说复杂,可能是优化器配套选择执行计划时,是否选择HashJoin,选择外表转载 2021-09-27 11:23:45 · 1582 阅读 · 1 评论 -
tidb和tbase的聚合函数算法
tidb的聚合函数算法连接:(二十二)Hash Aggregationtidb实现了两种聚合函数的算法:Hash Aggregation 和 Stream Aggregation对于数据无序的,使用Hash Aggregation。对于数据按照groupby字段有序的,使用Stream Aggregation。以avg聚合函数作为例子,在执行时需要维护两个中间值sum和count。Hash Aggregation在 Hash Aggregate 的计算过程中,我们需要维护一个 H原创 2021-07-12 11:07:15 · 657 阅读 · 0 评论 -
数据库内核如何实现排序和聚合
本篇文章选自数据库内核杂谈系列文章。上篇文章中,我们着重介绍了对于一个 SQL 语句,数据库是怎么生成一个执行计划,并根据这个执行计划,一步一步地读取,计算并获得最后结果的。这一期,我们来聊一下两个非常重要的算子(operator, 上一期我把 operator 翻译成操作符,后来读了其他前辈写的文章,发现还是算子更贴切: 排序(Sort)和聚合(Aggregate)的实现。为什么要把这两个算子放在一起说呢?其实,它们之间有很多的共同点,比如都是 Blocking 的算子,即需要得到所有的输入 ..转载 2021-07-01 11:58:23 · 225 阅读 · 0 评论 -
千万不要为了“分库分表”而“分库分表”,优点和隐患
数据库瓶颈不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象了(并发量、吞吐量、崩溃)。IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询会产生大量的IO,降低查询速度->分库和垂直分表 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 ->分库 CPU瓶颈 第一种:SQl问题:如SQL中包含j转载 2021-06-15 11:44:23 · 1177 阅读 · 0 评论 -
GreenPlum数据库调研及架构介绍
简介http://docs-cn.greenplum.org/v6/admin_guide/intro/arch_overview.htmlGreenplum数据库是一种大规模并行处理(MPP)数据库服务器,其架构特别针对管理大规模分析型数据仓库以及商业智能工作负载而设计。Greenplum数据库是基于PostgreSQL开源技术的。它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS)。其SQL支持、特性、配置选项和最终用户功能在大部分情况原创 2020-11-04 18:12:43 · 2209 阅读 · 0 评论 -
Snowflake数据库调研及架构介绍
简介https://docs.snowflake.com/en/user-guide/intro-key-concepts.htmlSnowflake是作为软件即服务(SaaS)提供的分析数据仓库。与传统的数据仓库产品相比,Snowflake提供了一个更快,更易于使用且更加灵活的数据仓库。Snowflake的数据仓库不是建立在现有数据库或Hadoop等“大数据”软件平台上的,Snowflake数据仓库使用新的SQL数据库引擎,该引擎具有为云设计的独特架构。对于用户而言,Snowflake与其他企业数原创 2020-11-03 20:46:07 · 11412 阅读 · 1 评论 -
三种存储类型:块存储、文件存储、对象存储
链接:https://www.zhihu.com/question/21536660/answer/1159036357链接:https://www.cnblogs.com/hukey/p/8323853.htmlhttps://www.cnblogs.com/sylar5/p/11520149.html存储类型先从三种存储类型开始。看了很多文章,感觉都无从下手,因为我还不了解为什么有这么多的存储方式和存储类型,所以先不看这些概念的定义,先了解为什么会有这些概念。为什么会有这么多存储原创 2020-11-02 10:21:27 · 25754 阅读 · 4 评论 -
开源数据库HAWQ,架构调研
hawq的简介https://cloud.tencent.com/developer/article/1433137HAWQ,全称Hadoop With Query(带查询Hadoop)。HAWQ使企业能够获益于经过锤炼的基于MPP的分析功能及其查询性能,同时利用Hadoop堆栈。HAWQ是一个Hadoop原生大规模并行SQL分析引擎,针对的是分析性应用。和其他关系型数据库类似,接受SQL,返回结果集。但它具有大规模并行处理很多传统数据库以及其他数据库没有的特性及功能。hawq的语法兼容性H原创 2020-10-27 17:47:30 · 831 阅读 · 0 评论 -
ClickHouse调研与架构介绍
1. ClickHouse是啥?是用于联机分析(OLAP)的列式数据库管理系统(DBMS)2. 啥是列式数据库?常见的行式数据库系统有: MySQL、Postgres和MS SQL Server。将同一列的数据存储在一起,不同列的数据也总是分开存储的数据库是列式数据库。常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (Vec原创 2020-10-23 16:44:05 · 2645 阅读 · 0 评论 -
数据库Trafodion 调研报告
1.Trafodion是啥?Trafodion是一个建立在Hadoop/HBase平台上的关系型数据库,它完全开源免费。擅长处理交易型负载的Hadoop大数据解决方案。和传统关系数据库不同的地方在于,Trafodion利用底层Hadoop的横向扩展能力,可以提供极高的扩展性。Trafodion可以借助HBase的扩展性,仅通过增加普通Linux服务器就可以增加计算和存储能力,进而支持大数据应用。2.Trafodion的主要特性有哪些?完整的ANSI SQL语言支持 完整的ACID事务支持。对于原创 2020-10-22 18:27:41 · 1011 阅读 · 0 评论