大数据
-
使用 pg_stat_statements 记录运行中的 SQL 信息
pg_stat_statements 属于一个 Extension 模块,用来记录数据库所有的SQL语句的运行信息,这个模块需要设置参数 shared_preload_libraries 的值为 “pg_stat_statements” , 并且需要重启 pg 服务。 pg_stat_statement…
-
使用 pgbench 进行数据库压力测试
pgbench 是对 PostgreSQL 进行压力测试的一款简单程序, SQL 命令可以在一个连接中顺序地执行,通常会开多个数据库 Session, 并且在测试最后形成测试报告,得出每秒平均事务数,pgbench 可以测试 select,update,inse…
-
使用 Auto_explain 模块记录历史执行计划
今天有个库负载突然比较高,达到 50 左右,平常这个库是很空闲的,负载大部分时候都维持在1以下,于是查看数据库日志和当前活动会话,有个语句比较多,而且执行时间在 1.2s 左右, 于是单独分析这个 SQL, 奇怪的是…
-
正责表达式量词符号的逃逸
今天有开发人员问我,需要取出下面字符串 + 号之前的字符串。原字符串:”[爱情狂人]性感大片+w(160)h(128)”目标取出:“[爱情狂人]性感大片” ,即 + 号之前的字符串。 当然最先想到的是可以先找出 + 号的位置,然后通…
-
Unable to cancel query by using "pg_cancel_backend"
今天在海外 PostgreSQL 库上杀进程, 杀了很久都没成功;数据库为8.3版本, 只能使用 pg_cancel_backend 来杀, 以下为详细过程: 查看进程 12345678 postgres=# select procpid, datname,current_query ,waiting from…
-
PGCon:2011 PostgreSQL 全国大会有感 ( 第一届 广州 )
第一届中国 PostgreSQL 用户大会在广州圆满成功,这次有幸能和德哥一起参加,实属不易!在大会中有幸能亲眼听到PG社区重量级人物 David Fetter ,和 Tastuo Ishii 的分享以及各界人士的演讲并认识一些朋友,受益非浅…
-
Understanding Bitmap Heap Scan
PostgreSQL 里表访问方式有 Bitmap heap scan, 这个访问方式有些特别,要理解它首先得理解 Sequence Scan Seq Scan Sequence Scan 可以翻译成全表扫描,如果表上没有任何索引,如果查询这张表将会走 Seq Scan , Seq…
-
使用降序组合索引优化一例
今天发现有个库负载很高, 达到10左右,经查有个SQL比较慢,执行时间在 1.5 秒左右,而且并发量很大,SQL如下。 低性能 SQL 1234567 select * from (select * from tbl_table where appid = 324016 and status = 0 a…
-
PostgreSQL Time Zone Names
PostgreSQL 时间时区类型有 “timestamp with time zone” 和 “timestamp without time zone” , “time zone” 即为时区,这节简单描述下时区的概念,最后将给出一个全世界时区参照图,供参考。 了解时区 创建一张测试…
-
PostgreSQL: Transaction Isolation
数据库的隔离级别有四种,分别是 Read uncommitted ,Read committed Repeatable read,Serializable , PostgreSQL 数据库的默认事务隔离级别是 Read committed , 有系统参数可以更改数据库隔离级别。事务隔离级别的…