开发者社区> 数据库> 关系型数据库

关系型数据库

关注

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

0
今日
4685
内容
34
活动
995
关注
|
SQL AliSQL 关系型数据库
|

AliSQL · 开源 · Sequence Engine

Introduction 单调递增的唯一值,是在持久化数据库系统中常见的需求,无论是单节点中的业务主键,还是分布式系统中的全局唯一值,亦或是多系统中的幂等控制。不同的数据库系统有不同的实现方法,比如MySQL提供的AUTO_INCREMENT,Oracle,SQL Server提供SEQUENCE等。 在MySQL数据库中,如果业务系统希望封装唯一值,比如增加日期,用户等信息,AUTO_INCR

1486 0
|
存储 缓存 MySQL
|

TokuDB · 源码分析 · 一条query语句的执行过程

Mysql是基于代价cost来选择索引,如果一个表有好几个索引,optimizer会分别计算每个索引访问的代价,选择代价最小的索引进行访问,这个索引也被称为access path。 Pickup index Mysql在执行query语句的时候会在server层计算每个可选索引的代价,并选择代价最小的索引作为访问路径(access path)去引擎读取数据。 server层的handler类为

1660 0
|
监控 关系型数据库 MySQL
|

MySQL · 特性分析 · 5.7 error log 时区和系统时区不同

问题描述 现象 5.6 和 5.7 时区设置相同,select now()也显示当前时间 5.7 error log 中时间和当前时间差8小时 问题分析 5.6 写 error log 函数如下 取时间的函数是localtime_r(&skr, &tm_tmp) 日志中时间和系统时区相同 static void print_buffer_to_file(e

3048 0
|
SQL 存储 NoSQL
|

SQL Server · 特性分析 · 2012列存储索引技术

摘要 MS SQL Server 2012首次引入了列存储索引(Columnstore Index)来加速数据分析(OLAP)和数据仓库(Data Warehouse)场景的查询,它主要是通过将数据按列压缩存储的方式来减少查询对磁盘IOPS开销和CPU开销,最终达到提升查询效率,降低响应时间的目的。当然,列存储索引也不是一把万能的钥匙,在SQL Server 2012版本中它有诸多非常严苛限制条件

1799 0
|
SQL 监控 关系型数据库
|

MySQL · 捉虫动态 · event_scheduler 慢日志记错

问题背景 最近遇到了 event_scheduler 在记录慢日志时的一个 bug,在这里分享给大家。 为了方便描述问题,先构造一个简单的 event,如下: delimiter // create event event1 on schedule every 5 second starts now() ends date_add(now(), interval 1 hour) do beg

1743 0
|
存储 缓存 NoSQL
|

PgSQL · 引擎介绍 · 向量化执行引擎简介

摘要 本文为大家介绍一下向量化执行引擎的引入原因,前提条件,架构实现以及它能够带来哪些收益。 希望读者能够通过对这篇文章阅读能够对向量化执行引擎的应用特征与架构有一个概要的认识。 关键字 向量化执行引擎, MonetDB,Tuple, 顺序访问,随机访问, OLAP, MPP,火山模型,列存表,编译执行 背景介绍 过去的20-30年计算机硬件能力的持续发展,使得计算机的计算能力飞速提升。然后

6070 1
|
NoSQL Java 网络性能优化
|

MongoDB · 特性分析 · 网络性能优化

从 C10K 说起 对于高性能即时通讯技术(或者说互联网编程)比较关注的开发者,对C10K问题(即单机1万个并发连接问题)应该都有所了解。『C10K』概念最早由 Dan Kegel 发布于其个人站点,即出自其经典的《The C10K problem》一文[1]。 于是FreeBSD推出了kqueue,Linux推出了epoll,Windows推出了IOCP。这些操作系统提供的功能就是为了解决C1

4524 0
|
SQL 关系型数据库 数据库
|

PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求

背景 随着IT行业在更多的传统行业渗透,我们正逐步的在进入DT时代,让数据发挥价值是企业的真正需求,否则就是一堆废的并且还持续消耗企业人力,财力的数据。 传统企业可能并不像互联网企业一样,有大量的开发人员、有大量的技术储备,通常还是以购买IT软件,或者以外包的形式在存在。 数据的核心 - 数据库,很多传统的行业还在使用传统的数据库。 但是随着IT向更多行业的渗透,数据类型越来越丰富(诸如人像

4885 0
|
关系型数据库 索引
|

MySQL · myrocks · myrocks index condition pushdown

index condition pushdown Index condition pushdown(ICP)是直到mysql5.6才引入的特性,主要是为了减少通过二级索引查找主键索引的次数。目前ICP相关的文章也比较多,本文主要从源码角度介绍ICP的实现。讨论之前,我们先再温习下。 以下图片来自mariadb 引入ICP之前 引入ICP之后 再来看个例

1759 0
|
监控 算法 关系型数据库
|

MySQL · 引擎特性 · InnoDB 同步机制

前言 现代操作系统以及硬件基本都支持并发程序,而在并发程序设计中,各个进程或者线程需要对公共变量的访问加以制约,此外,不同的进程或者线程需要协同工作以完成特征的任务,这就需要一套完善的同步机制,在Linux内核中有相应的技术实现,包括原子操作,信号量,互斥锁,自旋锁,读写锁等。InnoDB考虑到效率和监控两方面的原因,实现了一套独有的同步机制,提供给其他模块调用。本文的分析默认基于MySQL 5.

2024 0
|
索引
|

PgSQL · 案例分享 · 递归收敛优化

背景 有一个这样的场景,一张小表A,里面存储了一些ID,大约几百个。 (比如说巡逻车辆ID,环卫车辆的ID,公交车,微公交的ID)。 另外有一张日志表B,每条记录中的ID是来自前面那张小表的,但不是每个ID都出现在这张日志表中,比如说一天可能只有几十个ID会出现在这个日志表的当天的数据中。 (比如车辆的行车轨迹数据,每秒上报轨迹,数据量就非常庞大)。 那么我怎么快速的找出今天没有出现的ID

1321 0
|
MySQL 关系型数据库 索引
|

MySQL · 捉虫动态 · 5.6中ORDER BY + LIMIT 错选执行计划

问题描述 create table t1(id int auto_increment primary key, a int, b int, c int, v varchar(1000), key iabc(a,b,c), key ic(c)) engine = innodb; insert into t1 select null,null,null,null,null; insert into

2520 0
|
关系型数据库 测试技术 数据库
|

PgSQL · 案例分享 · PostgreSQL 性能诊断指南

背景 数据库的性能优化是一个非常经典的话题,数据库的优化手段以及优化的角度也各不相同。 例如,可以从OS内核、网络、块设备、编译器、文件系统、SQL、数据库参数、业务逻辑、源码等各个方面去进行优化。 但是如果在优化前了解瓶颈在什么地方,可以向打鼹鼠一样,先打大的,起到事半功倍的效果。 本文将针对Linux平台下的PostgreSQL服务,讲解如何诊断PostgreSQL 数据库服务的瓶颈,了

5004 0
|
关系型数据库 数据库 双11
|

PgSQL · 案例分享 · 从春运抢火车票思考数据库设计

背景 马上春节了, 火车票又到了销售旺季, 一票难求依旧。 抢火车票是很有意思的一个课题,对IT人的智商以及IT系统的健壮性,尤其是数据库的功能和性能都是一种挑战。 为什么这么说呢,我们一起来缕一缕。 一、铁路售票系统的需求 铁路售票系统最基本的需求包括 查询余票、余票统计、购票、车次变化、退票、改签、中转乘车规划 等。 每个需求都有各自的特点,例如 1. 查询余票属于一个

2807 0
|
SQL 测试技术 Go
|

SQL Server · 特性介绍 · 统计信息

SQL Server查询优化器对于执行计划成本的评估是基于数据库统计信息的。所以,数据库统计信息直接影响到数据库查询效率,是数据库系统快速响应,低延迟特性的幕后英雄,但是我们又经常忽视数据库统计信息的存在和维护,怀着为英雄正名和唤醒大家对幕后英雄尊重的目的写作这篇文章。 什么是统计信息 SQL Server查询优化器使用统计信息来评估表或索引视图的一个或多个列中值的分布,这个分布信息提供了用于创

1751 0
|
存储 关系型数据库 MySQL
|

MySQL · myrocks · myrocks统计信息

概述 mysql查询优化主要是在代价统计分析的基础上进行的。合理的代价模型和准确的代价统计信息决定了查询优化的优劣。myrocks基于mysql5.6, 目前的代价模型依赖的主要因素是IO和CPU,mysql5.7及以上的版本代价模型做了较多改进,具体可以参考这里 IO主要跟数据量和缓存相关,而CPU主要跟参与排序比较的记录数相关。 因此mysql5.6的统计信息的指标主要是数据量和记录数。例

1670 0
|
存储 关系型数据库 数据库
|

MySQL · 引擎特性 · Infobright 列存数据库

简介 系统架构 存储引擎 优化器和执行器 数据装载和卸载 领域知识 查询优化 简单场景的示例 小结 存储结构 Data Pack Knowledge Node 数据压缩 总结 简介 Infobright 是一个面向 OLAP 场景的开源列

4248 0
|
SQL 数据挖掘 关系型数据库
|

PgSQL · 特性分析· JIT 在数据仓库中的应用价值

背景 近几年,分析型数据库中有项技术得到了广泛的应用。它就是 JIT(Just-in-time compilation)动态编译。还有一些相关名词 LLVM codegen 和这项技术相关。本文把这项技术做一个简单的分析,和大家分享。 一、JIT 是什么 长久以来数据仓库都是以高效的处理量数据的能力著称。随着硬件的发展,他们使用大量相关技术充分挖掘硬件的能力提高数据的吞吐量和处理效率。例如 SM

1640 0
|
算法 关系型数据库 定位技术
|

PgSQL · GIS应用 · 物流, 动态路径规划

背景 双十一背后的技术系列文章 《聊一聊双十一背后的技术 - 分词和搜索》 每年双十一的交易额都创新高,今年也不例外,双十一几乎成了各种IT系统的大考,物流也不例外。 每次双十一快递几乎都被爆仓,但是随着技术的发展,今年,听说双十一刚过,小伙伴们的包裹差不多都收到了,今年的快递效率怎么如此之高呢? 今天,来给大家分享一下物流与背后的数据库技术,当然我讲的还是PostgreSQL, Gre

3003 0
|
SQL 搜索推荐 Go
|

MSSQL · 最佳实战 · 巧用COLUMNS_UPDATED获取数据变更

业务场景 在平时与数据库打交道的过程中,我们经常会有这样的疑惑:如何快速的获取数据变更记录呢?举个例子,搜索引擎要为外部客人提供快速准确的商品信息搜索功能,那么当有新的商品数据变更后,搜索引擎如何快速的发现这些新的变更数据呢?我们常见的两种做法: 全量更新 这种方法最为简单直接,反正不管三七二十一,搜索引擎每次全量拉取商品信息表所有数据,然后创建搜索索引,提供给外部客人查询。这种方法实现起来的确

1439 0
|
并行计算 关系型数据库 测试技术
|

PgSQL · 特性分析 · PostgreSQL 9.6 让多核并行起来

背景 经过多年的酝酿(从支持work process到支持动态fork共享内存,再到内核层面支持并行计算),PostgreSQL 的多核并行计算功能终于在2016年发布的9.6版本中正式上线,为PG的scale up能力再次拔高一个台阶,标志着开源数据库已经攻克了并行计算的难题。 相信有很多小伙伴已经开始测试了。 在32物理核的机器上进行了测试,重计算的场景,性能程线性提升。 目前并行计算支

5832 0
|
SQL 关系型数据库 测试技术
|

PgSQL · 特性分析 · PostgreSQL 9.6 如何把你的机器掏空

背景 PostgreSQL 在向和纵向的扩展能力在开源数据库中一直处于非常领先的地位,例如今年推出的9.6,内置了sharding的功能,同时在scale-up的能力也有非常明显的提升,特别是在多核与高并发处理这块。 社区有同学在128核的机器上测试tpc-b的select only模式可以达到几百万的qps,机器的CPU资源被吃光光。 天下大势,分久必合,合久必分。谈了这么多年的shardi

6284 0
|
搜索推荐 关系型数据库 MySQL
|

MySQL · 引擎介绍 · Sphinx源码剖析(一)

介绍 Sphinx是一个全文索引引擎,他被设计为可以非常简单方便的与各种数据库(mysql,PG…)进行交互。它提供了两种读取接口,a) sphinx自己实现的mysql协议的接口, SphinxQL。b) 各种语言客户端的接口,也就是native搜索API. c) 也可以直接通过mysql server的一个存储引擎插件来访问, SphinxSE. 接下来我们会有一些列文章来分析Sphinx

2926 0
|
存储 自然语言处理 AliSQL
|

MySQL · 引擎特性 · Column Compression浅析

前言 当用户的数据量比较大时,通常需要对数据进行压缩,以减少磁盘占用。InnoDB目前有两种方式来实现这一目的。 第一种是传统的数据压缩,通过指定row_format及key_block_size,能够将用户表压缩到指定的page size并进行存储,默认使用zlib。这种压缩方式使用比较简单,但也是诟病较多的, 代码陈旧,相关代码基本上几个大版本都没发生过变化,一些优化点还是从faceboo

2019 0
|
存储 关系型数据库 索引
|

MySQL · TokuDB · rbtree block allocator

背景 Percona在今年8月引入了一个大patch “rb tree block allocation strategy”,使用变种的红黑树作为跟踪未使用block hole的数据结构。 Percona上对此介绍的连接(点击这里跳转到原文) 这个改进是基于percona内部性能测试和外部用户反馈,发现当TokuDB引擎在长时间写入压力比较大的场景下,随着时间增长写入性能会急剧下降;当采用s

1508 0
|
存储 关系型数据库 MySQL
|

MySQL · myrocks · myrocks之事务处理

前言 mysql目前支持的事务引擎有innodb,tokudb。 rocksdb加入mysql阵营后,mysql支持的事务引擎增长至3个。 myrocks目前支持的事务隔离级别有read-committed和repeatable-read。 同innodb一样,myrocks也支持MVCC机制。 可以说,myrocks提供了很好的事务支持,能够满足的一般业务的事务需求。 sequence n

2523 0
|
关系型数据库 数据库 PostgreSQL
|

PgSQL · 特性分析 · 金融级同步多副本分级配置方法

背景 对于金融级的应用场景,2个副本通常是不够的,用户可能会需要多个副本。 例如,一主4从,要求除了主以外,还需要2个同步的副本,其他可以为异步的副本。 另一方面,我们在使用数据库时,为了扩展读的能力,读写分离是比较常见的用法。 9.6以前的版本,同步复制是确保XLOG已经复制到备库,而不是已经在备库apply,虽然APPLY通常都很快,可能也在毫秒级别完成,但是以前没有apply级别的

1312 0
|
SQL 存储 缓存
|

SQL Server · 最佳实践 · 参数嗅探问题

摘要 MSSQL Server参数嗅探既是一个涉及知识面非常广泛,又是一个比较难于解决的课题,即使对于数据库老手也是一个比较头痛的问题。这篇文章从参数嗅探是什么,如何产生,表象是什么,会带来哪些问题,如何解决这五个方面来探讨参数嗅探的来龙去脉,期望能够将SQL Server参数嗅探问题理清楚,道明白。 什么参数嗅探 当SQL Server第一次执行查询语句或存储过程(或者查询语句与存储过程被强制

2116 0
|
JSON 关系型数据库 MySQL
|

MySQL · 特性分析 · 直方图的实现与分析

直方图(Histogram)是 RDBMS 中提供的一种基础的统计信息,最典型的用途是估计查询谓词的选择率,以便选择优化的查询执行计划。常见的直方图种类有:等宽直方图、等高直方图、V-优化的直方图,MaxDiff 直方图等等。RDBMS 产品最初使用的直方图非常简单(只有一个桶),后来逐步演化到等宽直方图、等高直方图等。MariaDB 10.0.2 就已在 server 层实现了直方图功能,参考T

2655 0
|
关系型数据库 PostgreSQL
|

PgSQL · 代码浅析 · PostgreSQL 9.6 聚合OP复用的优化分析

背景 聚合操作指将分组的数据聚合为一个结果输出。 聚合通常用在统计应用中,例如统计分组的最大值,最小值,记录数,平均值,方差,截距,相关性。 聚合也可能被用于文本分析或者图像分析等,例如最佳相似度,行列变换,聚合为数组或JSON,图像堆叠等。 因此聚合通常需要启动值,行的处理,以及结果的格式转换3个过程。 PostgreSQL的聚合也包含了以上三个过程,创建一个聚合函数的语法如下: CR

2093 0
|
存储 缓存 关系型数据库
|

PgSQL · 代码浅析 · PostgreSQL 可靠性分析

背景 PostgreSQL 可靠性与大多数关系数据库一样,都是通过REDO来保障的。 群里有位童鞋问了一个问题,为什么PostgreSQL的REDO块大小默认是8K的,不是512字节。 这位童鞋提问的理由是,大多数的块设备扇区大小是512字节的,512字节可以保证原子写,而如果REDO的块大于512字节,可能会出现partial write。 那么PostgreSQL的redo(wal) 块

2617 0
|
SQL 关系型数据库 MySQL
|

MySQL · 源码分析 · 无法revoke单库或单表权限

现象 对于拥有全局权限的用户,无法revoke单库或单表的权限,示例如下 mysql> grant select on *.* to 'xx1'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> revoke select * test.* from 'xx1'@'localhost'; ERROR 1141 (420

1738 0
|
存储 关系型数据库 MySQL
|

MySQL · myrocks · data dictionary 分析

data dictionary rocksdb作为mysql的一个新的存储引擎,在存储引擎层,会维护自已的元数据信息。在innodb存储引擎中,我们通过information_schema下的INNODB_SYS_DATAFILES,INNODB_SYS_TABLES,INNODB_SYS_INDEXES等表, 可以窥视innodb的元数据信息。同样,rocksdb通过information_

1725 0
|
Oracle 关系型数据库 MySQL
|

MySQL · 社区见闻 · Percona Live 2016 见闻

前言 今年的 Percona Live 时间很凑巧,正好夹在 Oracle Open World 和 MariaDB 开发者大会之间,而且跟 MariaDB 开发者大会一样在阿姆斯特丹,因此蹭了 MariaDB Foundation 的免费票去参加了 Percona Live。 从纽约飞阿姆斯特丹时,从芬兰赫尔辛基中转呆了一天,承蒙祖师爷 Monty 厚爱到他家住了一天,简直就是黑客帝国……

2246 0
|
关系型数据库 MySQL 数据安全/隐私保护
|

MySQL · 社区见闻 · MariaDB Developer Meeting 2016

高能预警:这还不是一篇纯技术的月报…… 前言 Percona Live 之后紧接着第二天就是 MariaDB Developer Meeting,会议地点就在Booking的办公大楼这次会议的主题就是讨论 10.3 的规划,以及 10.2 的 GA 计划,以及还需要加入 10.2 的功能。 先哭一会别人家的办公楼,这风景。 MariaDB Foundation 不比各种商业公司,全靠捐

2136 0
|
Oracle 关系型数据库 MySQL
|

MySQL · 社区见闻 · Oracle Open World 2016 见闻

高能预警:这不是一篇纯技术月报,这不是一篇纯技术月报!(不善拍照,外景图片有从朋友的FB和Twitter中截取) 申请主题 今年的OOW依然在旧金山召开,有了去年参会的经验,感觉以我们的工作水平,放在国际上也是可以出去讲一番的,因此在收到 Oracle ACE 主题邀请之后,就果断把我们去年最大的成果之一——《Double Sync Replication》提交上去了。 不过多久,收到会务组

1747 0
|
AliSQL 关系型数据库 MySQL
|

AliSQL · 社区动态 · 关于开源之后评论的评论

背景 AliSQL在云栖大会宣布开源,并有幸请到MySQL之父、MariaDB创始人Monty一起见证。 我们在将消息公布到社区之后,也同时关注社区的反馈。以下是对于评论的评论。 handshake protocol 声音:以阿里的个性就是大多数开源了 push 到 github 后面就不怎么管了 其实这么说的人并没有真正全面的去看阿里开源的趋势,大家会看到这几年的分支维护的是越来越

1695 0
|
算法 关系型数据库 C语言
|

PgSQL · 源码分析 · PG中的无锁算法和原子操作应用一则

原子操作概述 近年来随着服务器上CPU核数的不断增加,无锁算法(Lock Free)越来越广泛的被应用于高并发的系统中。PostgreSQL 做为世界上最高级开源数据库也在9.5时引入了无锁算法。本文先介绍了无锁算法和原子操作在PostgreSQL中的具体实现, 再通过一个Patch来看一下在PostgreSQL中是如何利用它来解决实际的高并发问题的。 无锁算法是利用CPU的原子操作实现的数

2558 0
|
存储 NoSQL
|

MongoDB · 特性分析· Sharding原理与应用

MongoDB Sharded Cluster 原理 如果你还不了解 MongoDB Sharded cluster,可以先看文档认识一下 中文简介:MongoDB Sharded cluster架构原理 英文汇总:https://docs.mongodb.com/manual/sharding/ 什么时候考虑用 Sharded cluster? 当你考虑使用 Sharded

1948 0
|
SQL 关系型数据库 数据库
|

PgSQL · 源码分析 · PG优化器浅析

在使用PostgreSQL数据库过程中,对SQL调优最常用的手段是使用explain查看执行计划,很多时候我们只关注了执行计划的结果而未深入了解执行计划是如何生成的。优化器作为数据库核心功能之一,也是数据库的“大脑”,理解优化器将有助于我们更好地优化SQL,下面将会为大家解开PostgreSQL优化器神秘的面纱。 SQL执行过程 在PG数据库中,对于DDL语句无需进行优化,到utility

2557 0
|
关系型数据库 MySQL 索引
|

MySQL · 捉虫状态 · bug分析两例

BUG 1 IN查询结果不对 背景 在mysql5.6.16版本下,构建如下测试用例 CREATE TABLE `a` ( `c1` varchar(512) NOT NULL DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `a` VALUES ('i-28s18atup'),('i-2850jdoa2'),('i-

1509 0
|
Oracle 关系型数据库 数据库
|

PgSQL · 最佳实践 · pg_rman源码浅析与使用

背景 对于商业数据库来说,备份的功能一般都非常的全面。 比如Oracle,它的备份工具rman是非常强大的,很多年前就已经支持全量、增量、归档的备份模式,支持压缩等。 还支持元数据存储到数据库中,管理也非常的方便,例如保留多少归档,备份集的管理也很方便,例如要恢复到什么时间点,将此前的备份清除等等。 对于开源数据库来说,支持向商业版本这么丰富功能的比较少,PostgreSQ

3311 0
|
SQL 缓存 关系型数据库
|

MySQL · 特性分析 · 执行计划缓存设计与实现

Plan Cache背景知识 一条SQL语句输入到MySQL服务器后,一般要经历:词法语法解析(parse),优化(optimize),生成执行计划(plan)和执行(execute)的过程。词法语法分析,优化以及生成执行计划,这三个阶段的主要输出是SQL语句的执行计划(plan),当SQL语句存在多种执行计划的时候,优化器会从这许多的执行计划中挑选出一个它认为最优的(通常是占用系统资源最少的,

2654 0
|
关系型数据库 MySQL 索引
|

MySQL · 社区动态 · MariaDB 10.2 前瞻

继 MariaDB 10.1 之后,对标 MySQL 5.7 的 MariaDB 10.2 版本也即将封板,那么我们就来看看新的版本有哪些新的功能吧。 之前的月报我们写过一篇关于 Window Function 的介绍,除此之外,10.2.2 又即将发布一些新的特性。 Virtual Columns 进一步加强 目前有两种类型的虚拟列:PERSISTENT/STORED 类型,这种类型的虚拟

1910 0
|
存储 关系型数据库 大数据
|

PetaData · 架构体系 · PetaData第二代低成本存储体系

背景 2015年7月,PetaData分布式数据库开放了低成本存储体系,随后便服务了天象等多个大数据业务,这些业务存量数据在数百T,日新增10T,新增数据大多是秒级监控数据,既要数据实时可见,又要支持多维度低延迟查询,还要大幅降低成本。 在PetaData第一代低成本存储体系中,融合了ApsaraDB团队多年的技术积累,包括方寸山分布式框架、MySQL TokuDB存储引擎、低成本机型等技术,

3725 0
|
监控 关系型数据库 MySQL
|

MySQL · 社区贡献 · AliSQL那些事儿

一直以来我们都在不断对我们的阿里云MySQL分支做极致的性能优化及功能扩展。我们从社区的分支,如上游版本及Percona Server上学习新的改进和功能,并引入到我们的分支中。同时我们也将我们的一些改进思路反馈到上游,让整个社区也能享受到我们的成果。 本文主要介绍下AliSQL贡献给上游MySQL5.7版本的一些跟性能相关的优化。注意这里只摘取了几个比较有意思的优化,在即将开源的AliSQL中

2067 0
|
SQL 大数据 关系型数据库
|

PgSQL · 源码分析· pg_dump分析

PostgreSQL本身提供了逻辑导出工具pg_dumpall和pg_dump,其中pg_dumpall导出所有的数据库,pg_dump导出单个数据库,两个工具的用法和参数不再详细介绍,本文从代码层面上对此过程进行分析。 概括地说,逻辑导出要干的事情就是连接对应数据库,读出各个数据库对象的定义和数据,此外还包括comment、服务器配置和权限控制等等,这些数据库对象定义的SQL语句会被写入到对应

1832 0
|
算法 物联网 关系型数据库
|

PgSQL · 实战经验 · 旋转门压缩算法在PostgreSQL中的实现

背景 在物联网、监控、传感器、金融等应用领域,数据在时间维度上流式的产生,而且数据量非常庞大。 例如我们经常看到的性能监控视图,就是很多点在时间维度上描绘的曲线。 又比如金融行业的走势数据等等。 我们想象一下,如果每个传感器或指标每100毫秒产生1个点,一天就是864000个点。 而传感器或指标是非常多的,例如有100万个传感器或指标,一天的量就接近一亿的量。 假设我们要描绘一个时间

2770 0
|
缓存 关系型数据库 MySQL
|

MySQL · 源码分析 · Query Cache并发处理

Query cache 的并发处理 上期介绍了Query cache的一个基本工作原理,请参考MySQL · 源码分析 · Query Cache内部剖析。本期将对Query cache的并发处理过程进行一个剖析。 当前Query cache是所有session共享的,也就是说同一条SELECT语句 + database + flag(包含影响执行结果的所有环境变量)构成的Key如果已经存储在

1787 0
|
存储 关系型数据库 MySQL
|

MySQL · 专家投稿 · InnoDB物理行中null值的存储的推断与验证

前言 想写这边文章,是因为之前想写一个解析innodb ibd文件的工具,在写这个工具的过程中,发现逻辑记录转物理记录的转换中,最难的有两部分,一是每行每字段null值占用的字节和存储,二是变长字段占用的字节和存储的格式。本文中重点针对第一种情况。 之前看有关介绍compact行记录格式: 变长字段之后的第二个部分是NULL标志位,该位指示了该行数据中是否有NULL值,有则用1表示。该部分

1638 0
我要发布