华山论剑之 PostgreSQL sequence (二)】的更多相关文章

rename 对 sequence 的影响 关联列与 sequence 后,即 sequence 属于该列后,drop 表或列时会自动 drop 相关 sequence. 但如果对表或列 rename 后,甚至 rename sequence后,会发生什么呢? 我们来做一下实验. 创建测试表 tb_test_sequence_rename alvindb=> CREATE TABLE tb_test_sequence_rename ( test_id BIGSERIAL PRIMARY KEY,…
前言 本文是 sequence 系列继三大数据库 sequence 之华山论剑 (Oracle PostgreSQL MySQL sequence 十年经验总结) 之后的第二篇,主要分享一下 PostgreSQL 中关于 sequence 的一些经验. 测试环境准备 以下测试是在 PostgreSQL 11 中进行. 通过以下 SQL 创建: 测试用户: alvin,普通用户,非 superuser 测试数据库: alvindb,owner 是 alvin 测试 schema: alvin,ow…
数据库脚本 DELETE FROM user; ​ INSERT INTO user (id, name, age, email) VALUES (, , 'test1@baomidou.com'), (, , 'test2@baomidou.com'), (, , 'test3@baomidou.com'), (, , 'test4@baomidou.com'), (, , 'test5@baomidou.com'); ​ DROP TABLE IF EXISTS user; ​ CREATE…
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='db_name' AND pid<>pg_backend_pid(); drop database db_name;…
前言 本文将基于以下三种关系型数据库,对 sequence (序列) 展开讨论. Oracle - 应用最广泛的商用关系型数据库 PostgreSQL - 功能最强大的开源关系型数据库 MySQL - 应用最广泛的开源关系型数据库 sequence 适用场景 主键 用于整型主键数据的生成,一般一个 sequence 仅用于一张表的主键.这是最常用的用途. 本文讨论的主要是此用途. 非主键 只使用 sequence 本身自增的功能,可多表共用一个 sequence,或整个数据库共用一个 seque…
AUTOVACUUM AUTOVACUUM 简介 PostgreSQL 提供了 AUTOVACUUM 的机制. autovacuum 不仅会自动进行 VACUUM,也会自动进行 ANALYZE,以分析统计信息用于执行计划. 在 postgresql.conf 中,autovacuum 参数已默认打开. autovacuum = on autovacuum 打开后,会有一个 autovacuum launcher 进程 $ ps -ef|grep postgres|grep autovacuum|…
sequence 用法四 AUTO INCREMENT 通过 DEFAULT 还是需要手动创建 sequence.有没有更简单的用法呢? 当然,就是通过 AUTO INCREMENT 方式,自动创建 sequence,并且自动在 DEFAULT 中调用! Oracle 同样,Oracle 也是 12c 开始支持 AUTO INCREMENT. 以下测试是在 Oracle Database 12c Release 12.2.0.1.0 中进行的. SQL> CREATE TABLE tb_test…
MySQL 5.7 MYISAM ENGINE 以下是 MySQL 5.7 MYISAM ENGINE 中的运行结果 mysql> CREATE TABLE tb_test5 ( -> test_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, -> test_order INTEGER -> ) ENGINE = MYISAM; Query OK, 0 rows affected (0.00 sec) mysql> SHOW C…
前言 VACUUM 是 PostgreSQL MVCC (Multiversion concurrency control) 实现的核心机制之一,是 PostgreSQL 正常运行的重要保证.本文将通过实例演示 PostgreSQL 为什么需要做 VACUUM,以及一步一步精准触发 AUTOVACUUM, 到 VACUUM 优化实战,深入浅出,一看就懂. 测试环境准备 以下测试是在 PostgreSQL 11 中进行. 通过以下 SQL 创建: 测试用户: alvin,普通用户,非 superu…
VACUUM 相关参数 对 VACUUM 有了一定的了解之后,下面系统介绍下 VACUUM 相关参数. VACUUM 相关参数主要分为三大类. 第一类 与资源相关参数 #----------------------------- # RESOURCE USAGE (except WAL) #----------------------------- # - Memory - #maintenance_work_mem = 64MB # min 1MB #autovacuum_work_mem =…