PostgreSQL
皓月如我
这个作者很懒,什么都没留下…
展开
-
Docker一键部署PostGIS
deploy PostGIS with docker原创 2024-07-04 14:32:17 · 352 阅读 · 0 评论 -
PG数据向Kingbase移植
前提:PG和Kingbase的数据库均已创建完成。 1.整理PG数据。--设备表update my_dev_tab set description = 'dummy' where description is null or description = '';--列字典表update my_col_dict set col_name_chn = 'dummy' where col_name_原创 2017-02-13 19:34:34 · 2049 阅读 · 0 评论 -
PostgreSQL和Kingbase中设置search_path
会话级别设置: SET search_path TO “$user”, public, my_schema;数据库级设置(跨会话): ALTER database smartsys SET search_path TO “$USER”, public, my_schema;原创 2017-02-23 09:47:05 · 2994 阅读 · 2 评论 -
PostgreSQL连接情况查询
select * from pg_stat_activity;翻译 2017-03-11 15:09:51 · 2804 阅读 · 0 评论 -
PostgreSQL中Timestamp转成世纪秒(Unix时间戳)
使用extract函数和epoch关键字即可select to_timestamp('1970-01-01 00:00:05', 'YYYY-MM-DD HH24:MI:SS');>>"1970-01-01 00:00:05+08"select extract(epoch from to_timestamp('1970-01-01 08:00:05', 'YYYY-MM-DD HH24:MI:SS原创 2017-05-16 16:01:08 · 19168 阅读 · 0 评论 -
Kingbase和PostgreSQL中如何查看当前连接的进程信息
PG查看当前连接信息: select * from pg_stat_activity; Kingbase查看当前连接信息: select * from sys_stat_activity;如果当前的用户连接数已经到达最大值,仍然能够以管理员用户system,使用系统预留的3个保留连接进行登录。 PG/KDB:show superuser_reserved_connections;查出当前连接原创 2017-04-25 20:07:25 · 5849 阅读 · 2 评论 -
选择主键:自然键还是代理键?
【转自】http://blog.csdn.net/haiross/article/details/21388997 【原文地址】http://www.agiledata.org/essays/keys.html本文概述关系数据库中为表指定主键的策略。主要关注于何时使用自然键或者代理键的问题。有些人会告诉你应该总是使用自然键,而另外一些人会告诉你应该总是使用代理键。这些人总是被证明是错误的,通常他们转载 2017-05-22 15:50:35 · 3445 阅读 · 0 评论 -
PG通用(常用)功能
查看各个表所占用内存SELECT table_schema || ‘.’ || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size(‘”’ || table_schema || ‘”.”’ || table_name || ‘”’)) AS size FROM information_schema.tables转载 2017-12-12 11:17:34 · 767 阅读 · 0 评论 -
SQL表内查重和删重
查询重复记录select * from my_tab where dup_col in( select dup_col from my_tab group by dup_col having count(dup_col)>1 ) order by dup_col;原创 2017-03-10 17:47:22 · 8879 阅读 · 3 评论 -
PostgreSQL索引探究
创建包含10个列(c01 - c10)的表my_table,用如下语句创建2个索引,并向表中插入6w条记录。这6w条记录的c01列,全部都是2017年04月21日的数据。CREATE INDEX my_table_index1 ON my_table USING btree (c05, c01, c02)TABLESPACE smart_history_index;CRE...原创 2017-12-13 11:43:57 · 386 阅读 · 0 评论 -
PostgreSQL9中stream同步与Slony同步的比较
转载自:http://redsky008.iteye.com/blog/1084593 两种都是异步的。如果需要同步,至少等PostgreSQL9.1版本发布后。 尽管如此,正如你看到的异步同步,然后问自己几个问题: 在相同的平台下运行的主从节点使用的是同一个PostgreSQL版本吗? 我的从属节点只需要完成平台故障转移或只读查询吗? 我只需要一个从属节点吗?(多个从属节点可能消...转载 2018-01-18 11:04:22 · 439 阅读 · 0 评论 -
Citus性能测试
1.【测试环境】1.1.测试组:Citus with PG10 1+21.1.1.协调节点:CPU:单核2GHz RAM:2GB DISK:30GB HDD 主机名:citus IP地址:192.168.7.1291.1.2.工作节点1:CPU:单核2GHz RAM:2GB DISK:30GB HDD 主机名:citus-w1 IP地址:19...原创 2018-02-28 12:24:05 · 3833 阅读 · 1 评论 -
Citus架构介绍既实验总结
1. Citus是什么是PostgreSQL的扩展,可以同PG一同安装,之后通过SQL命令加入到数据库中。 【相关操作】#创建Citus扩展:CREATE EXTENSION citus;2. 节点2.1. 协调节点(coordinator node,简称CN)存储所有的元数据,不存储实际数据。为应用系统提供服务,向各工作节点发送查询请求,并汇总结果。对于应用系...原创 2018-03-16 09:33:58 · 3664 阅读 · 0 评论 -
Citus中的分片策略:Append Distribution追加分配
翻译自《Citus官方文档》Append Distribution追加分配Append distribution is a specialized technique which requires care to use efficiently. Hash distribution is a better choice for most situations. 追加分配是需要谨慎使用...翻译 2018-03-19 14:26:48 · 2660 阅读 · 0 评论 -
在CentOS7.2上部署Postgres-XL分布式数据库
下载安装包节点分类及说明主机规划修改主机hosts文件安装依赖的软件包卸载操作系统自带的PostgreSQL添加postgres用户配置免密登陆修改内核参数配置防火墙关闭SELinux安装Postgres-XL软件配置环境变量 配置Postgres-XL集群...原创 2018-08-01 18:11:47 · 1322 阅读 · 0 评论 -
Postgres-XL的使用与动态增删数据节点
Postgres-XL的部署请参考上一篇:《在CentOS7.2上部署Postgres-XL分布式数据库》1. 建表【REPLICATION表】即复制表,表的内容在各个数据节点完全相同。postgres=# CREATE TABLE repltab (c1 int, c2 int) DISTRIBUTE BY REPLICATION;【DISTRIBUTE表】及分片表,按照分...原创 2018-08-01 19:23:06 · 2409 阅读 · 4 评论 -
SQL语句遍历树结构的数据表
[转自]:肆尾葱的博客《SQL语句遍历树结构的数据表》一、创建树结构的数据库表-- 数据库为 SQL Servercreate table treeTest( id int, parentId int, info varchar(10))-- 插入数据insert into treeTest(id,parentId,info) values(1,nul...转载 2018-08-01 19:34:03 · 3947 阅读 · 1 评论 -
【数据库】数据库单表对比
需求:对比网络隔离的两个数据库DB1和DB2中,同名表的数据差异。以表tab为例,对比其中col列的区别。步骤1:在DB1中按照表tab的结构创建表tab1;步骤2:将DB1中tab的数据复制到tab1上:insert into tab1 select * from tab;步骤3:在DB2中按照表tab的结构创建表tab2;步骤4:将DB2中tab的数据复制到tab2上:inser...原创 2019-04-13 11:48:08 · 1650 阅读 · 0 评论 -
PostgreSQL数据导出成Insert语句
pg_dump --dbname=my_db_name --host=my_host_ip_addr --username=my_username --no-password --data-only --exclude-table-data=my_history_tables --inserts --column-inserts --disable-dollar-quoting --file=da原创 2017-02-08 09:49:23 · 9516 阅读 · 0 评论 -
PostgreSQL:Problem running post-install step. The database cluster initialisation failed. 解决方法。
安装PG时报上述错误。 网上搜索出许多解决方案比较常见的有:字符集,用户权限,等等。均已排除,而且因为很容易搜到,所以不再赘述。我遇到的问题,最先发现的解决方法是:只要使用缺省的程序目录和数据目录就一切OK。但是由于磁盘分配的需要,以及数据库和应用程序分离的需要,往往需要自定义数据目录。方法思路为先在缺省路径中完成软件安装,然后再迁移数据目录。步骤如下:创建新的数据目录,修改所属用户和组,修原创 2017-02-13 14:36:13 · 9239 阅读 · 3 评论 -
PostgreSQL数据字典查询[持续更新]
查询表名和列名:select * from information_schema.columns where table_schema='smartsys' and table_name like 'obj_%' order by table_name, column_name;原创 2016-02-24 13:51:52 · 5317 阅读 · 1 评论 -
PostgreSQL系统表和视图
表名字 表用途pg_aggregate 聚集函数 pg_am 索引访问方法 pg_amop 访问方法操作符 pg_amproc 访问方法支持过程 pg_attrdef 字段缺省值 pg_attrib原创 2016-02-25 17:17:16 · 5171 阅读 · 0 评论 -
information_schema中的所有表和视图
select table_name from information_schema.tables where table_schema = ‘information_schema’;“attributes” “character_sets” “check_constraint_routine_usage” “information_schema_catalog_name” “applicab原创 2016-02-25 17:18:02 · 3478 阅读 · 0 评论 -
分段查询
相比Oracle,PostgreSQL中分段查询的区别在以下几点:1. 没有rownum项,而是用ROW_NUMBER() OVER()表示;2. 子查询必须加别名,例如“as aa”,否则语法检查不通过;另外分段查询的一个注意事项:rownum只能做“”、“>=”、“between”的时候,起始值只能是0或1。因为rownum仅对查询结果排序生效,当写出“>1”时,第一条记录原创 2016-03-31 14:13:24 · 1231 阅读 · 0 评论 -
postgresql关闭自动提交
postgresql 默认是会自动提交的。psql.exe -h 192.168.1.2 -U username -d testdb -p 5432 (最后的5432是端口号)testdb=# \set AUTOCOMMIT off原创 2016-08-18 15:16:52 · 2726 阅读 · 0 评论 -
Select SQL查询效率优化原则
1.尽量避免where中包含子查询; 2.where条件中,过滤量最大的条件放在where子句最后; 3.采用绑定变量有助于提高效率; 4.在索引列上使用计算、改变索引列的类型、在索引列上使用!=将放弃索引; 5.运算符效率:exists高于in高于or,(not exists高于not in); (这里指出:in和or都是效率较低的运算,但是in的效率:O(logn)仍然比or的效率:O原创 2016-08-18 15:39:45 · 8186 阅读 · 3 评论 -
select max(id)优化
没什么说的,添加索引(可以是唯一索引,也可以是普通索引),可以提高成千上万倍。原创 2016-08-18 15:42:25 · 7390 阅读 · 0 评论 -
Transaction中的SQL死锁
试考察以下SQL语句:declare a_var integer; begin select col_a into a_var from tab_a where id = 1; update tab_a set col_b where id = 1; end;第一句select执行时需要一个“Shared Lock”共享锁,而共享锁是允许过得session同时进入的。 第二句原创 2016-08-18 16:30:09 · 1903 阅读 · 4 评论 -
Select count(*) 的优化
首先说明: select count(*) 和 select count(1)的效率相差无几。这里开始引用自“德哥@Digoal”的博客,原文链接:http://blog.163.com/digoal@126/blog/static/163877040201331252945440/–引用部分开始– 引用块内容 PostgreSQL 的count确实是一大软肋, 特别是全表的count.原创 2016-08-18 16:15:41 · 12529 阅读 · 2 评论 -
Insert SQL Query插入效率优化
主要针对PostgreSQL,其中部分原则也可以其他数据库: 1. 使用Transaction,减少提交次数。(副作用是难以获取执行进度) 2. (仅)PG中可以使用独有的copy方法。 3. 使用unlogged table。(副作用是降低数据库安全性) 4. (仅)PG中使用插入组,即insert into table_a(col_a, col_b) values(val_a1, val原创 2016-08-18 16:44:04 · 1376 阅读 · 0 评论 -
Postgres使用Copy命令将表导出成csv文件的遇到Permission Denied等错误
COPY (select id as ID, description as TNAME from my_table order by id) to ‘C:/exp4analyze/MyTable.csv’ with csv header;ERROR: could not open file “C:/exp4analyze/MyTable.csv” for writing: No such file原创 2016-10-28 16:52:59 · 8937 阅读 · 2 评论 -
在脚本中调用psql如何自动输入密码
设置环境变量PGPASSWORD#linuxexport PGPASSWORD=12345#windowsset PGPASSWORD=12345使用密码文件.pgpass 在~/目录下创建隐藏文件.pgpass set PGPASSFILE=/文件路径/.pgpass文件内容: hostname:port:database:username:password192.168.1.1原创 2016-11-11 16:52:55 · 8451 阅读 · 0 评论 -
PostgreSQL字符集问题
转自:osdba的文章《初学者遇到的PostgreSQL字符集问题的解决》当初学者在使用PostgreSQL数据库,输入中文时,会遇到“ERROR: invalid byte sequence for encoding “UTF8”: 0xd6d0”的错误,原因是由于没有正确设置客户端字符集。问题的原因: 默认情况下,PostgreSQL是不转换字符集的,如果你的数据库是UTF8的字符集,一般终转载 2016-11-11 16:55:34 · 6843 阅读 · 0 评论 -
PostgreSQL将表导出为CSV(服务器端、客户机端)完整版
如下使用COPY命令可将表内容导出到CSV文件。COPY (select id as COL_ID, name as COL_NAME from my_tab order by id) to 'D:/server_exp_dir/file_name.csv' with csv header;需要注意的是,上面的文件路径名必须是数据库服务器上的路径,且目录D:/server_exp_dir必须已经存在原创 2016-11-01 15:15:26 · 22258 阅读 · 7 评论 -
Postgresql中文排序
select id,description from my_table order by description;select id,description from my_table order by convert_to(description, ‘GBK’);第一种是按照LANG=C,即ASCII,进行排序。 第二种是按照拼音排序。原创 2016-11-25 10:10:46 · 8899 阅读 · 1 评论 -
PostgreSQL免安装部署方法
免安装版下载链接: 64位:http://download.csdn.net/detail/fm0517/9730287 32位:http://download.csdn.net/detail/fm0517/9730295使用方法: 1. 解压缩至某个目录,例如:G:/pgsql 2. 创建一个用于存放数据文件的目录,例如:G:/pgsql/data 3. 初始化数据库:G:/pgsql/原创 2017-01-06 10:21:34 · 8215 阅读 · 2 评论 -
Install PG fail on windows: Problem running post-install step.
I’ll keep this one short and sweet. For those of you that have tried to install PostgreSQL (mine was 8.3.7-1) on Windows Vista and got the error Database Cluster Initialisation Failed error at the end转载 2017-02-10 14:07:28 · 1521 阅读 · 0 评论 -
postgresql中自定义函数脚本的备份及恢复
【转自 housonglin1213 的博客】http://blog.csdn.net/housonglin1213/article/details/510055401、自定义函数脚本备份CREATE OR REPLACE FUNCTION function_sql_dump() RETURNS void AS $BODY$ DECLARE my_cur refcurso转载 2016-03-29 15:51:16 · 3863 阅读 · 0 评论