• 1. PostgreSQL内部概貌Postgres了解数据库实现的平台
  • 2. 提纲交流目标 PostgreSQL简史 产品特点 体系结构 调优方法 扩展性实例
  • 3. 交流目标了解PostgreSQL的优缺点 理解PostgreSQL体系结构 了解PostgreSQL运行流程 基本PostgreSQL的调优方法 了解PostgreSQL扩展开发
  • 4. PostgreSQL简史Ingres 项目(1977 ~ 1985 ) 关系数据库研究 Relational Technologies 做成了商品软件 Postgres项目(1986~1994) Michael Stonebraker 目标:数据库管理系统的更高级研究 特色:对象关系… SQL -> Postgres = PostgreSQL95 华裔:Andrew Yu 和Jolly Chen 当前版本8.4.0
  • 5. 产品特点SQL92 和SQL99支持 丰富的平台支持 最丰富的数据类型 高级特性支持 支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的自由软件数据库管理系统 丰富的客户端接口: ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 。。。
  • 6. 体系结构C/S模式外部程序libpqPostmasterPostgres1. 客户端发起请求2. 服务器端启动后端服务进程3. 客户端与后端服务进程连接
  • 7. 体系结构进程和存储PostMaster常驻进程共享磁盘缓冲区共享系统表操作系统缓冲区磁盘存储Postgres服务进程服务器进程共享内存操作系统
  • 8. SQL执行流程Postmasterpostgrespostgres……裸词法/语法解析变换处理规则重写优化执行执行结果检查点命令处理系统表管理事物管理存取管理……
  • 9. 调优方法系统配置上的调优 Linux内核参数调优 与磁盘IO子系统有关的 /proc/sys/vm/dirty_ratio /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_writeback_centisecs /proc/sys/vm/dirty_expire_centisecs 与网络IO子系统有关的 /proc/sys/net/ipv4/tcp_retrans_collapse 提高Linux应对短连接的负载能力 proc/irq/{number}/smp_affinity 数据库参数调优 max_connections tcp_keepalives_idle shared_buffers work_mem maintenance_work_mem max_fsm_pages wal_sync_method fdatasync wal_buffers checkpoint_segments checkpoint_timeout checkpoint_completion_target checkpoint_warning effective_cache_size
  • 10. SQL的调优 Explain 执行计划
  • 11. 扩展实例PostgreSQL的扩展开发能力 支持数据结构扩展 Create type 支持多种语言函数扩展 C、perl、tcl、python、plsql 个人参与的开发 PostgreSQL 外部表 http://pgfoundry.org/projects/pgexternaltable/ 垂直搜索索引优化
  • 12. 数据库系统基本功能对比。 ACID 关联完整性 数据库事务 UnicodePostgreSQL 是 是 是 是 SQL Server 是 是 是 是 MonetDB 是 是 是 是 MySQL 是是是是 Oracle 是 是 是 是
  • 13. 产品特点数据库索引功能对比R-/R+ tree 哈希 Expression 部分索引(Partial index) 反向索引(Reverse index) 位图索引(Bitmap) 通用索引框架PostgreSQL 是 是 是 是 是 否 是 SQL Server  ? 否 是 是是否 否 MySQL MyISAM 仅限InnoDB 否 否 否 否 否 Oracle EE edition only Cluster Tables 是 是 15是 是 否