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

关系型数据库

关注

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

0
今日
4684
内容
34
活动
995
关注
|
弹性计算 关系型数据库 测试技术
|

PostgreSQL on ECS 横向版本TPCB性能测试

本文对比的是PostgreSQL 9.4, 9.5, 9.6, 以及某基于9.4的国产数据库在ECS上的性能。 硬件环境和搭配 Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz 32核 128G 内存 500G 高效本地SSD , 15000

2174 0
|
SQL 关系型数据库 PostgreSQL
|

PostgreSQL ECPG ifdef include等预处理用法

PostgreSQL 社区版本的ecpg在一些预处理的用法上和Oracle的PROC有一些不一样的地方,使用者需要注意。例如社区版本的ecpg不支持c里面使用的#ifdef或者#ifndef这样的预处理语法,需要用其他写法来替代。所以你如果使用#ifdef这样的写法在.pgc里面,在使用ecpg编.

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

MySQL · 引擎特性 · InnoDB 软链表随手记

之前一直没去了解这快,这两天正好工作中碰到,这里简单记录下data directory的相关代码,InnoDB不支持INDEX_DIRECTORY,不在本文的讨论范围内. 以下涉及代码部分基于MySQL5.7.12 创建表 在建表时指定DATA DIRECTORY,如下所示: mysql>

2962 0
|
关系型数据库 BI PostgreSQL
|

PostgreSQL 多维分析 CASE

给企业做BI分析的开发小伙伴,可能经常会遇到这样的痛苦,运营人员今天问你要这样的维度报表,明天换个维度又来折腾你。对于开发的小伙伴,确实是非常痛苦的事情,那么有什么好的应对策略,而且对运营来说可能会显得比较高逼格呢? 多维分析派上用场,比如你的表有10个字段,允许运营人员以任意字段组合,产生报

6429 0
|
Oracle 关系型数据库 PostgreSQL
|

Oracle迁移到PPAS(PostgreSQL)时的日期计算问题

Oracle中两个日期相减会得到NUMBER类型返回,而在PPAS中同样操作返回的是INTERVAL,通过构建一个函数可以解决此问题。

3401 0
|
SQL 网络协议 关系型数据库
|

PostgreSQL ECPG 开发 DEMO

ECPG 是在C中嵌套SQL的一种用法。写好pgc文件后,需要使用ecpg程序将pgc编程成C文件来使用。 详细的用法请参考https://www.postgresql.org/docs/9.5/static/ecpg.html ecpg的用法, 以EXEC SQL开头表示后面是SQL写法

3866 0
|
存储 关系型数据库 PostgreSQL
|

深入浅出PostgreSQL B-Tree索引结构

PostgreSQL 的B-Tree索引页分为几种类别 meta page root page # btpo_flags=2 branch page # btpo_flags=0 leaf page # btpo_flags=1 如果即

14831 0
|
SQL 存储 关系型数据库
|

MySQL · 5.7新特性 · Query Rewrite Plugin

Query Rewrite Plugin 从MySQL5.7.6版本开始支持Rewrite Plugin,可以将符合条件的SQL进行重写。在真实世界中,这个特性还是非常有用的,例如错误的上线了某个SQL,但由于无法走到索引导致全库; 或者你可能使用某个第三方的已编译好的软件,但SQL可能执行错误,

11972 0
|
Oracle 关系型数据库 PostgreSQL
|

PostgreSQL Oracle 兼容性之 - 如何篡改插入值(例如NULL纂改为其他值)

Oracle有个功能,可以将用户插入的NULL值替换成指定的值。这个功能和default值的用意并不一样,default是指用户没有指定值时,使用default值代替。例如 postgres=# alter table test alter column id set default 1;

2257 0
|
网络安全 Windows
|

ssh Forward X11 实现远程主机GUI在本地展示 (C/S X)

有些时候,有些程序可能需要依赖图形界面才能启动,例如安装Oracle时(其实oracle支持命令行安装),例如需要启动一个图形界面的浏览器如firefox。作为服务端的系统,通常不会安装臃肿的图形界面。那么如何在不安装图形界面的的情况下启动图形界面的?听起来很矛盾,但是实际上是可行的。 X Win

16929 0
|
网络协议 关系型数据库
|

防止短连接耗尽你的动态TCP端口

用pgbench使用短连接压测一个PostgreSQL数据库(select 1),其他数据库亦如此。 $ vi test.sql select 1; $ export PGPASSWORD=digoal $ pgbench -M simple -C -n -r -P 1 -c 800

8622 0
|
关系型数据库 PostgreSQL
|

PostgreSQL 9.6 支持等待事件统计了

PostgreSQL 9.6 统计信息收集进程pgstat,增加了等待事件信息的收集,并且用户可以获得backend的等待事件信息。 目前支持的等待事件分类如下src/include/pgstat.h /* ---------- * Wait Classes * --------

2930 0
|
SQL 关系型数据库 PostgreSQL
|

PostgreSQL 9.6 水平分库,还差一点点啦

PostgreSQL 持续在基于fdw的sharding技术上深耕,9.6开始,在符合条件的前提下,支持JOIN和SORT下推到数据节点执行。下面是一个测试创建几个shard库 for subfix in 0 1 2 3 do psql -c "create database db$su

4730 0
|
关系型数据库 PostgreSQL
|

PostgreSQL 如何实现upsert与新旧数据自动分离

很多业务也行有这样的需求,新的数据会不断的插入,并且可能会有更新。对于更新的数据,需要记录更新前的记录到历史表。 这个需求有点类似于审计需求,即需要对记录变更前后做审计。我以前有写过使用hstore和触发器来满足审计需求的文档,有兴趣的同学可以参考http://blog.163.com/digoa

7032 0
|
关系型数据库 数据库连接 PostgreSQL
|

通过ODBC连接PostgreSQL和Greenplum

安装驱动 yum install -y unixODBC.x86_64 yum install -y postgresql-odbc.x86_64 查看驱动配置 cat /etc/odbcinst.ini # Example driver definitions

8867 0
|
SQL
|

MySQL · 捉虫动态 · left-join多表导致crash

有一天小编胡乱写SQL, left join了30张表, 结果导致了Mysql server gone away… 我们来看看crash堆栈 <signal handler called> base_list_iterator::next update_ref_and_keys make_

1747 0
|
SQL 算法 关系型数据库
|

PostgreSQL · 特性分析 · 统计信息计算方法

一条SQL在PG中的执行过程是: ----> SQL输入 ----> 解析SQL,获取解析后的语法树 ----> 分析、重写语法树,获取查询树 ----> 根据重写、分析后的查询树计算各路径代价,从而选择一条成本最优的执行树 ----> 根据执行树进行执行 ----> 获取结果并返回

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

MySQL · TokuDB · 日志子系统和崩溃恢复过程

TokuDB日志子系统 MySQL重启后自动加载InnoDB和其他的动态plugin,包括TokuDB。每一plugin在注册的时候指定init和deinit回调函数。TokuDB的init/deinit函数分别是tokudb_init_func和tokudb_done_func。 MySQL重

2024 0
|
网络协议 安全 Go
|

SQLServer · 最佳实践 · 透明数据加密在SQLServer的应用

背景 作为云计算的服务提供者,我们在向用户提供优秀的服务能力时会遇到一个合规的问题。在数据库领域,数据是极其敏感和珍贵的,保护好数据,就如保护好企业的生命线。因此,需要采取一些预防措施来帮助保护数据库的安全,如设计一个安全系统、加密机密资产以及在数据库服务器的周围构建防火墙。但是,如果遇到物理介质

2545 0
|
关系型数据库 数据库 对象存储
|

PG&GP · 特性分析 · 外部数据导入接口实现分析

背景 社区 PostgreSQL 和 GreenPlum 都提供了读写外部数据源的方法,它们都提供了一套编程接口,用户可以在这上面做二次开发,建立外部数据源和数据库间的数据通道。 本文介绍 PostgreSQL 和 GreenPlum 这部分编程接口的实现和编程方法。结合 RDS 开发的 oss

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

MySQL · 特性分析 · innodb buffer pool相关特性

背景 innodb buffer pool做为innodb最重要的缓存,其缓存命中率的高低会直接影响数据库的性能。因此在数据库发生变更,比如重启、主备切换实例迁移等等,innodb buffer poll 需要一段时间预热,期间数据库的性能会受到明显影响。 另外mysql 5.7以前innodb

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

PostgreSQL · 特性分析 · 逻辑结构和权限体系

本文旨在帮助用户理解PostgreSQL的逻辑结构和权限体系,帮助用户快速的理解和管理数据库的权限。 逻辑结构 最上层是实例,实例中允许创建多个数据库,每个数据库中可以创建多个schema,每个schema下面可以创建多个对象。 对象包括表、物化视图、操作符、索引、视图、序列、函数、… 等等。

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

MySQL · 特性分析 · MySQL 5.7新特性系列一

1. 背景 MySQL 5.7在2015-10-21发布了GA版本,即5.7.9,目前小版本已经到了5.7.12。5.7新增了许多新的feature和优化,接下来一个系列,我们就一起来尝尝鲜。首先这次主要是预览feature的变化以及兼容性问题。后面的系列,会针对重要的feature展开来学习。

4364 0
|
存储 SQL MySQL
|

MySQL · 引擎特性 · 基于InnoDB的物理复制实现

最近有幸前去美国参加Percona Live 2016会议并分享了我们最近在MySQL复制上所做的工作,也就是基于InnoDB的物理复制。会后很多小伙伴私信我说分享的PPT太内核了,不太容易理解。因此本文主要针对分享的内容进行展开描述,希望能对大家有所帮助。 背景知识 在开始之前,你需要对Inn

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

MySQL · TokuDB · Savepoint漫谈

问题描述 某TokuDB实例备库发生复制中断,报错信息甚是诡异: Error executing row event: "Can't lock file (errno: 22 - Invalid argument)" 经过gdb core后,大体知道了发生错误的原因: TokuDB在

1442 0
|
存储 缓存 索引
|

MySQL · TokuDB · TokuDB索引结构--Fractal Tree

背景介绍 TokuDB采用的是Fractal Tree作为索引的数据组织方式。它是一种面向磁盘I/O优化的数据结构,采用“分期偿还”策略减少在数据插入过程中从root节点到leaf节点的搜索过程。这种搜索过程可以简称为locate_position,就是寻找要插入key在Tree中位置的过程。

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

MySQL · 最佳实践 · RDS 只读实例延迟分析

前言 只读实例是目前 RDS 用户实现数据读写分离的一种常见架构,用户只需要将业务中的读请求分担到只读节点上,就可以缓解主库查询压力,同时也可以把一些 OLAP 的分析查询放到另外的只读节点上,减小复杂统计查询对主库的冲击,RDS只读节点架构图如下: 由于RDS只读节点采用原生的MySQL

2600 0
|
数据库 Memcache
|

Memcached · 最佳实践 · 热点 Key 问题解决方案

背景 在分布式K-V存储系统中,对某个key进行读写时,会根据该key的hash计算出一台固定的server来存取该K-V,如果集群不发生服务器数量变化,那么这一映射关系就不会变化。 云数据库 memcached 就是这样一种K-V缓存系统。在实际应用中的某些高峰时段,有的云数据库 memcac

3136 0
|
SQL 关系型数据库 物联网
|

PgSQL · 性能优化 · 如何潇洒的处理每天上百TB的数据增量

背景 本文主要介绍PostgreSQL 在中高端x86服务器上的数据插入速度(目标表包含一个时间字段的索引),帮助企业用户了解PostgreSQL在这类场景下的性能表现。 这类场景常见于运营商网关数据和金融行业数据,产生量大,并且要求快速插入大数据库中持久化保存。另外, 用户如果需要流式实时

2298 0
|
关系型数据库 MySQL
|

MySQL · 捉虫动态 · 并行复制外键约束问题二

背景 并行复制可以大大提高备库的 binlog 应用速度,内核月报也多次对并行复制特性进行介绍,感兴趣的朋友可以回顾下:5.6 并行复制实现分析、5.6 并行复制恢复实现 和 5.6并行复制事件分发机制。 在早期的内核月报,有一篇 并行复制外建约束问题,介绍阿里在 5.5 版本中自己实现并行复制

1764 0
|
关系型数据库
|

GPDB · 特性分析 · Segment 修复指南

问题背景 GPDB是中央控制节点式的架构,在一个 GreenPlum 集群中,有一个 Master 节点和多个 Segment 节点。Master 是中央控制节点,Segment 是数据存放节点。所有的Segment节点平等,均由Master管理。架构如下图: GreenPlum架构图

3635 0

GPDB · 特性分析 · Segment事务一致性与异常处理

事务一致性 这篇月报Primary和Mirror同步机制讲了Primary和Mirror之间各种数据和文件的同步过程。这些数据和文件的同步,看似彼此独立。那么如何保证某个时间点Mirror的所有数据是一致的,即任何时间点发生HA切换,Mirror都能达到一致性状态并对外提供服务?正如我们前面提到的

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

MySQL · 参数故事 · innodb_additional_mem_pool_size

参数简介 innodb_additional_mem_pool_size 是 InnoDB 用来保存数据字典信息和其他内部数据结构的内存池的大小,单位是 byte,参数默认值为8M。数据库中的表数量越多,参数值应该越大,如果 InnoDB 用完了内存池中的内存,就会从操作系统中分配内存,同时在 e

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

MySQL · 答疑解惑 · MySQL 锁问题最佳实践

前言 最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手。下面将从整个数据库设计,开发,运维阶段介绍如何避免锁问题的发生,提供一些最佳实践供RDS的用户参考。 设计阶段 在数据库设计阶段,引擎

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

MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算

背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log。备库sql线程执行relay log从而保持和主库同步。 理论上主库有更新时,备库都存在延迟,且延迟时间为备库执行时间+网络传输时间即t4-t2。 那

1456 0

GPDB · 特性分析· GreenPlum FTS 机制

前言 FTS(Fault Tolerance Serve)是GreenPlum中的故障检测服务,是保证GP高可用的核心功能。GreenPlum的Segment的健康检测及HA是由GP Master实现的,GP Master上面有个专门的进程–FTS进程,它可以快速检测到Primary或者Mirro

3357 0
|
MySQL 关系型数据库 数据库
|

MySQL · 物理备份 · Percona XtraBackup 备份原理

前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心。我们 RDS MySQL 的物理备份就是基于这个

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

MySQL · BUG分析 · Rename table 死锁分析

背景 InnoDB buffer pool中的page管理牵涉到两个链表,一个是lru链表,一个是flush 脏块链表,由于数据库的特性: 脏块的刷新,是异步操作; page存在两个版本,一个是ibd文件的持久化版本,和buffer pool内存中的当前版本。 所以在对table对象进行dd

1988 0

SQLServer · BUG分析 · Agent 链接泄露分析

背景 SQLServer Agent作为Windows服务提供给用户定期执行管理任务,这些任务被称为Job;考虑应用镜像的场景如何解决Job同步问题,AWS RDS的做法是不予理会,由用户维护Job,假如发生切换用户需要在新的Principal端创建Job;另一种做法是镜像端保持同步Job,切换后

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

PgSQL · 源码分析 · 优化器逻辑推理

背景知识 数据库优化器需要具备逻辑推理能力,而且越强越好,为什么呢? 举一些例子, 通过已知的一个人讲的是真话,推理另一个人讲的一定是真话或一定是假话。 例子1: 假设预先提供了 a > 10 是真话 可以推理出 a < 1 一定是假话 例子2: 假设预先提供了 a > 10 是真话

1472 0
|
SQL Java 关系型数据库
|

MySQL · TokuDB · 事务子系统和 MVCC 实现

前言 之前有篇月报是关于innodb事务子系统的《MySQL · 引擎特性 · InnoDB 事务子系统介绍》 里面较详细的讲述了 MySQL 如何开启一个事务,感兴趣的同学可以先阅读那篇温习一下。 TokuDB 引擎也支持事务,保证一个事务内的所有操作都执行成功或者都未被执行。TokuDB

1803 0
|
关系型数据库 MySQL
|

MySQL · 答疑解惑 · mysqldump tips 两则

背景 用户在使用mysqldump导数据上云的时候碰到两个“诡异”的问题,简单分析分享下。 TIP 1 --port端口无效? 本地有3306和3307两个端口的实例,执行命令为: mysqldump --host=localhost --port=300x -Ddb1 db1 -r out

2034 0
|
关系型数据库 Java MySQL
|

MySQL · 特性分析 · 线程池-

概述 MySQL 原有线程调度方式有每个连接一个线程(one-thread-per-connection)和所有连接一个线程(no-threads)。 no-threads一般用于调试,生产环境一般用one-thread-per-connection方式。one-thread-per-conne

1951 0
|
SQL 存储 关系型数据库
|

MariaDB · 版本特性 · MariaDB 的 GTID 介绍

简介 简单来说,MariaDB(MySQL)的复制机制是这样的: 在Master端所有数据库的变更(包括DML和DDL)都会以 Binlog Event 的方式写入Binlog中。Slave会连上Master然后读取 Binlog Event,再重放这些操作到自身的数据中。一个实例可以既是Mas

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

PgSQL · 性能优化 · PostgreSQL TPC-C极限优化玩法

简介 本文以工业界测试模型TPC-C为测试模型,介绍PostgreSQL数据库从系统层面的优化到数据库层面的优化方法。 TPmC从 256195.32 提升到 606466.31 是如何做到的。 测试环境介绍 16核开HT共32线程 256G 1600MHz 内存 万兆网卡 3 块 6

4214 0
|
关系型数据库 MySQL
|

MySQL · TokuDB · TokuDB之黑科技工具

TokuDB之黑科技工具 刚过完年,美女程序员静静想学习下 TokuDB 相关技术,从何处入手呢?TokuDB的技术资料可是出了名的少! 本篇就给大家介绍下两个“黑科技”工具,来帮助我们更深入的了解TokuDB。 黑科技之tokuftdump 此工具用来dump一个Fractal-Tree结

2062 0
|
SQL 关系型数据库 调度
|

PgSQL · 答疑解惑 · PostgreSQL 9.6 并行查询实现分析

背景 随着PG9.5 项目的release,属于PG9.6的代码也陆续进入代码主干,其中最让人激动的特性并行查询终于进入了核心代码。pger们对这个新特性期待了太久的时间,代码刚提交我们就迫不及待的拿到,从设计到性能进行一番探究,并通过本文介绍给大家。 并行技术的过去和未来 这是个很困难的工作

3095 0
|
运维 关系型数据库 Java
|

PgSQL · 会议见闻 · PgConf.Russia 2016 大会总结

大会概况 2月3号到5号,受邀去莫斯科参加了PgConf.Russia大会,这里介绍一下大会的一些见闻。 此次大会的新闻报道见此链接。此次会议有多达600多人参加,聚集了俄罗斯地区的PG相关厂商、DBA和开发者。大会邀请了20多位来自俄罗斯之外的国际演讲者,包括PG核心开发团队的大佬Bruce

1954 0
我要发布