公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.
在开始讲serializable read only deferrable用法前,需要先了解一下serializable隔离级别。https://wiki.postgresql.org/wiki/Serializablehttp://www.postgresql.org/docs/9.5/stat.
Oracle的SQL*Plus客户端支持使用promote输入变量值,然后在脚本的其他位置使用该变量值。例如大量的dbms脚本使用了这个用法, 如statspack输入起始值。https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch1203.
前几条在写这篇文档的是否,发现sysbench对PostgreSQL libpq绑定变量使用的支持并不好。《让 sysbench 支持 PostgreSQL 服务端绑定变量》https://yq.aliyun.com/articles/34870 那么怎样跟踪出错的代码呢?通过gdb跟踪是一种手段
测试PostgreSQL数据库性能的方法很多,例如pgbench, sysbench。sysbench因为使用lua脚本编程,支持多线程,灵活度更高,测试复杂的业务逻辑建议用sysbench。pgbench其实也很好,纯C写的,本身的开销小,测高并发低延迟的场景建议用pgbench。 首先要购
在使用sysbench或者pgbench测试数据库性能时,连unix socket, loop address性能差异是非常大的,特别是非常小的事务,例如基于KEY的查询,或者select 1这样的简单查询。原因是这种查询在数据库端的处理非常快,从而网络延迟在整个耗时占比上就会比较大。还有一种场景.
首先介绍一下几种数据库绑定变量的语义。.1. PostgreSQL 绑定变量的语义是$n来表示位置n的变量,例如 : select info from test where id=$1 and c1=$2; .2. Oracle 使用:var来表示变量,例如: stmt =
本文参考老唐的使用sysbench和sqlldr并行装载Oracle测试数据而成。http://blog.osdba.net/538.html sysbench原来自带的lua数据装载脚本是使用以下方式串行装载的,速度比较慢(比单条insert快,但是比COPY慢)。 insert int
prepared statement是非常重要的高并发SQL优化手段之一,效果也显而易见。下面是测试,同时观察绑定和不绑定的情况下的profile。在未使用绑定变量的时候,新增或上升了一些硬解析相关的CODE。 测试数据 postgres=# create table test(id i
Iperf是一个网络性能测试工具,主要应用于LINUX服务器下面。可以测量最大TCP和UDP带宽,具有多种参数和特性,可以记录带宽,延迟抖动和数据包丢失,最大组和MTU等统计信息,通过这些信息可以发现网络问题,检查网络质量,定位网络瓶颈。Iperf在linux和windows平台均有二进制版本供自.
PostgreSQL 的GUI客户端比较多,有开源的,也有商业的。用得比较多的可能是PgAdmin了,有些人可能会用EDB的PEM。但实际上这两个GUI都有一个小问题,在返回较大的结果集时,会非常的慢。例如 : 数据库端创建一个表,插入约30MB数据。 postgres=> create
大多数的流式计算产品只支持APPEND ONLY的应用场景,也就是只有插入,没有更新和删除操作。如果要实现更新和删除的实时流式计算,在PostgreSQL中可以这样来实现。在此前你可以阅读我以前写的文章来了解PG是如何处理一天一万亿的实时流式计算的:https://yq.aliyun.com/ar.
在一些应用程序中,可能需要对表的所有字段进行检索,有些字段可能需要精准查询,有些字段可能需要模糊查询或全文检索。这种需求对于应用开发人员来说,会很蛋疼,因为写SQL很麻烦,例子: postgres=# create table t(phonenum text, info text, c1 in
本节介绍一下Greenplum的全量恢复恢复时需要指定dump key ( 即gpcrondump时,每个数据库备份都带的时间戳)全量恢复需要考虑几个因素, DROP DATABASE, TRUNCATE TABLE, DROP TABLE.这些和gpcrondump或者gpdbrestore的参.
本节介绍一下Greenplum的全量备份。全量备份脚本 #!/bin/bash GPHOME=/home/digoal/gphome # Replace with symlink path if it is present and correct if [ -h ${GPHOME}/
MySQL 5.7的一个新特性,generated columnhttp://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-generated-columns即generated column的值是普通column产生.
本文还可以回答另一个问题,为什么数据库开启wal_hint_log后或者使用initdb -k参数开启checksum后,产生的XLOG变多了。 PostgreSQL 查询是可能产生XLOG的,这需要从PostgreSQL tuple上的hint bits说起。什么是hint bits?你可以
在数据库中用得最多的当属btree索引,除了BTREE,一般的数据库可能还支持hash, bitmap索引。但是这些索引到了物联网,会显得太重,对性能的损耗太大。为什么呢?物联网有大量的数据产生和入库,入库基本都是流式的。在使用这些数据时,基本是FIFO,或者范围查询的批量数据使用风格。btree.
在物联网应用场景中,有大量的传感器,会产生非常大量的消息以极高的并发进入数据库。这些数据如果直接进入面向OLAP场景设计的数据仓库,数据实时入库会成为瓶颈,并且OLAP系统很难接受非常高并发的请求。面对这样的应用场景,这些既要又要还要怎么满足呢?.1. 既要实时入库,.2. 又要实时分析,.3. .
问题来自云栖问答,觉得比较好,所以记录一下: 我的项目用的是MySQL,但也想同时请教下在Oracle、SqlServer中应该如何处理如下问题: 有数据表如下所示: 希望从表中抽取数据,要求两条记录的时间间隔至少2分钟 对下面图片中的数据而言,假如我查询的时间范围是从2014-08
create or replace function minus_weekend(timestamp, timestamp) returns interval as $$ declare s timestamp := $1; e timestamp := $2; sd date;
在云栖社区的问答区,有一位网友提到有一个问题: 表里相似数据太多,想删除相似度高的数据,有什么办法能实现吗? 例如: 银屑病怎么治? 银屑病怎么治疗? 银屑病怎么治疗好? 银屑病怎么能治疗好? 等等 解这个问题的思路.1. 首先如何判断内容的相似度,PostgreSQL中
Greenplum master节点是用来存储元数据的,包括 :序列,表,临时表,分区,函数,视图,类型,操作符,规则,触发器 等。 segment 上也会存储部分元数据,序列,表,临时表,函数,视图,类型,操作符,规则,触发器 等。 master比segment更多的信息包括:分布策略