postgresql 索引】的更多相关文章

最近客户在使用我司开发的数据库时,报告了如下问题(也不能算是问题,就是疑惑吧),环境如下: OS : Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel : 2.6.32-573.el6.x86_64 PostgreSQL : PostgreSQL 9.6.2 执行准备工作: postgres=# create table test (id int, data text); CREATE TABLE postgres=# i…
索引方式:唯一索引,主键索引,多属性索引,部分索引,表达式索引. 索引类型:B-Tree,Hash,GiST,GIN以及表达式索引 PostgreSQL所有索引都是“从属索引”,也就是说,索引在物理上与它描述的表文件分离. 索引也是对象,在表pg_class里有记录. 索引的内部结构与索引的访问方法(索引类型)相关.所有访问方法都通过页面来组织索引的内部结构,这样可以使用存储管理器提供的接口来访问索引. 索引方式 多属性索引:如果一个索引定义多一个一个属性,就称为多属性索引,用于组合查询. Po…
磨砺技术珠矶,践行数据之道,追求卓越价值   [作者 高健@博客园  luckyjackgao@gmail.com] 本页目的,是起到索引其他所有本人所写文档的作用: 分类一:PostgreSQL基础知识与基本操作--------------------  PostgreSQL基础知识与基本操作索引页 分类二:PostgreSQL内部结构与源代码研究------------------- PostgreSQL内部结构与源代码研究索引页 分类三:PostgreSQL集群方案相关----------…
h1, h2, h3, h4, h5, h6, p, blockquote { margin: 5px; padding: 5; } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", Arial, sans-serif; font-size: 16px; line-height: 18px; color: #737373; background-color: white; mar…
今天应用反应有张表查询报错,报错信息如下 back=# select max(create_time) from public.tbl_index_table where create_time>='2010-10-08';ERROR:  could not read block 41381 of relation 16779/24769/24938: read only 0 of 8192 bytes 看到这个错误信息,首先想到的是表 tbl_index_table 上有坏块,估计需要表重建下…
当在看Monetdb列存行只支持IMPRINTS和ORDERED这两种索引,且只支持定长数值类型时,就在思考,对于列存,还有必要建索引吗?在PostgreSQL的索引就要灵活很多,我对常用列建合理的索引,是不是能达到列存的效果?(肯定没有). 当然,有索引还是快很多: 1)对于整型列来说,应该是用ORDERED索引,建类似于btree索引,将数据按大小进行了排序,当执行> = < <= >= between in is等操作时,就非常快了,不需要整个列进行扫描比较. 2)对于字符串…
1.B-tree索引 create index idx_contacts_name on contacts(name); 2.数组索引 create index idx_contacts_phone on contacts using gin(phone); 注:phone在contacts表中是一个数组类型 3.降序索引 create index idx_contacts_name on contacts(name desc); 4.指定存储参数 create index idx_contac…
索引膨胀,主要针对B-tree而言 索引膨胀的几个来源: 大量删除发生后,导致索引页面稀疏,降低了索引的使用效率: PG9.0之前的版本,vacuum full会同样导致索引页面稀疏: 长时间运行的事务,禁止vacuum对表的清理工作二导致页面稀疏状态一致保持. 注意REINDEX会造成全表锁,不要在系统繁忙的时候操作 查看索引占用的空间: select pg_relation_size(oid)/1024/1024,relname from pg_class where relkind=’i’…
磨砺技术珠矶,践行数据之道,追求卓越价值 luckyjackgao@gmail.com 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的内部结构和源代码研究相关文摘和文章的链接: 1  pg_stat_statements-------------   pg_stat_statements源代码分析 2  hook---------------------------   PostgreSQL的hook机制初步学习 3  client_encoding ---…
磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页 luckyjackgao@gmail.com 本页记录所有本人所写的PostgreSQL的基础知识和基本操作相关文摘和文章的链接: 1 psql-- ---1.1 psql and chinese-----------------------   如何使 Postgresql 的psql 使用 中文提示信息 ---1.2 psql change chinese info---------------   更改Pos…
磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的集群方案相关文摘和文章的链接: pgpool-II: 1 pgpool-II and pgpool ----------------------------  pgpool 与 pgpool-II 莫混淆 2 pgpool-II master-slave --------------------------  pgpool-II的master-slave模式的分析 3 p…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 索引膨胀,主要是针对B-tree而言. 索引膨胀的几个来源: 1 大量删除发生后,导致索引页面稀疏,降低了索引使用效率. 2 PostgresQL 9.0之前的版本,vacuum full 会同样导致索引页面稀疏. 3  长时间运行的事务,禁止vacuum对表的清理工作,因而导致页面稀疏状态一直保持. 如何找出 膨胀的索引,参见: https:…
磨砺技术珠矶,践行数据之道,追求卓越价值 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的统计信息相关文摘和文章的链接: pg_stats:   -----------------------------  PostgreSQL的pg_stats学习 pg_stat_statements:---------------------  PostgreSQL下安装pg_stat_statements 返回顶级页:PostgreSQL索引页 磨砺技术珠矶,践行数据之…
磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页[作者 高健@博客园  luckyjackgao@gmail.com] 由于数据少,执行计划中没有使用Index Scan postgres=# CREATE TABLE items ( postgres(# itemid serial NOT NULL PRIMARY KEY, postgres(# itemname text NOT NULL,…
磨砺技术珠矶,践行数据之道,追求卓越价值  luckyjackgao@gmail.com 返回顶级页:PostgreSQL索引页 此页,记录其他数据库,linux以及各种点滴事项 1--数据库设计 1.1-------------------  同时10万个事务在线,读写频繁,数据库该如何设计 2--Linux 2.1--fdisk-----------  对linux下 fdisk 中 primary , extented, logical 分区的理解 2.2--centos--cn-----…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 本文的目的一是为了备忘,二是为了抛砖引玉,希望有更多的人来研究如何使用好PostgreSQL的hook机制. 在研究pg_stat_statments的源代码的时候,发现其中使用了hook机制:例如其中提到了如下几种hook: void _PG_fini(void) { /* Uninstall hooks. */ shmem_startup_…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 作者 高健@博客园  luckyjackgao@gmail.com 首先要了解 vacuum 与  vacuum all的区别: vacuum 就是进行扫除,找到那些旧的“死”数据,把它们所知的行标记为可用状态.但是它不进行空间合并. vacuum full,就是除了 vacuum,还进行空间合并,因此它需要lock table. 而 auto…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 看代码: /* File path names (all relative to $PGDATA) */ #define BACKUP_LABEL_FILE backup_label #define BACKUP_LABEL_OLD backup_label.old 在特定条件下,会有一个文件,名为 backup_label 在StartupX…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 HOT的解释: 如下的日文文档中,有几个图示,解释得比较清晰: http://www.slideshare.net/ItagakiTakahiro/postgresql-83-update?from_search=11 在update的时候,不在index上建立新的节点,而是通过数据块中老记录指向同块的新记录方式,来减少IO读写操作. http…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页 官方说明来自: http://www.postgresql.org/docs/9.2/static/runtime-config-wal.html#RUNTIME-CONFIG-WAL-CHECKPOINTS 何时发生Checkpoint呢? 下列条件任意之一会导致Checkpoint发生: shared_buffers中,产生了 checkpo…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页 作者:高健@博客园 luckyjackgao@gmail.com 参考:http://blog.2ndquadrant.com/measuring_postgresql_checkpoin/ 执行前: select pg_stat_reset(); select pg_stat_reset_shared('bgwriter'); 待测试程序执行完…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 作者:高健@博客园 luckyjackgao@gmail.com 开始之前,有一个问题需要说明,PostgreSQL中,没有一个与Oracle SGA类似的东西来控制共享内存的大小: http://raghavt.blogspot.com/2011/04/postgresql-90-architecture.html http://raghav…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao@gmail.com] 说是内存增长,其实未必是.但是客户有时候喜欢用free命令来查看,为何更好地了解,进行以下试验. 运行PostgreSQL前: [root@server ~]# free -m total used free shared buffers cached Mem: -/+ b…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 [作者:高健@博客园 luckyjackgao@gmail.com] PostgreSQL对资源使用的控制,相关信息如下,不过总量把握是不能的: 如果是PostgreSQL,可以参考: http://www.postgresql.org/docs/current/interactive/runtime-config-resource.html…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 看PostgreSQL中与PITR相关的设定: wal_level=archive … # - Archiving - archive_mode = on # allows archiving to be done # (change requires restart) archive_command = 'cp %p "/usr/local…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 看了很多的例子,没有发现具体讲 recovery_target_time的例子,于是自己作一个吧 在开始之前,先把postgresql.conf的配置设置好: wal_level = archive # minimal, archive, or hot_standby # (change requires restart) # - Archi…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 通过实验,可以发现,PostgreSQL中使用WAL log来存储到其他地方,来辅助完成PITR. 但是,WAL是16MB一个, 缺省情况下,如果一个WAL文件没有写满,它就不会被archive_command 调用来拷贝走. 如果长时间没有太多作业,可能有点WAL log会一直位于pg_xlog目录下作为online redo log存在.…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 关于timeline,有如下的说法 http://www.postgresql.org/docs/current/static/continuous-archiving.html . Timelines The ability to restore the database to a previous point :15PM on Tuesd…
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页 一,从initdb开始,initdb执行结束后,看xlog: [pgsql@localhost pg_xlog]$ ls -lrt drwx------ pgsql pgsql Aug : archive_status -rw------- pgsql pgsql Aug : [pgsql@localhost pg_xlog]$ 然后,设置参…
磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页[作者 高健@博客园  luckyjackgao@gmail.com] PostgreSQL及PPAS支持xml数据类型,故进行如下的实验. 先看PPAS9.2中的效果: 先建立表: -bash-3.2$ ./bin/psql -d edb psql (9.2.1.3) "help" でヘルプを表示します. edb=# CREATE TAB…