postgresql简介对比.

前言

之前就听说pg功能强大,而且使用排名也比较高,正好要接入pg管控运维,需要快速学习,下面是pg与mysql和Oracle的简单对比,可以在大的层面上有所了解


pg与mysql对比

MySQL pg
SQL语法支持弱(不支持sequence,子查询性能弱) 主流夺标查询能力强(Nest loop, hash join, sort merge join), sql语法能力强(with语句), 正则表达式能力强,where支持正则表达函数,存储过程支持的好(可用perl Python编写)
性能数据少 (这个确实,性能采集需要专门监控来做) 性能工具强(大量性能试图,看到正在执行的sql,锁视图等),有专门的架构和进程用于性能收集
online DDL支持的不好 加空列只是加表定义,瞬间的事,在线索引不锁表
异步复制/半同步复制 9.1开始支持同步复制
支持复杂SQL,支持大量分析函数,空间索引,支持插件
  • 使用推荐
    • 简单存储功能,操作简单,大部分逻辑在应用中完成 推荐用 mysql或者nosql
    • 不想消耗太多开发资源,数据库完美与代码融合 推荐用pg,写数据库就跟写Python似的

pg与Oracle对比

  • 共同点
    • 都是用共享内存进程结构
    • 连接都是一个进程为此连接服务,跟mysql的线程池差别较大
    • WAL日志和Oracle的redo类似都是记录物理块数据的变化,与mysql的binlog差别较大
  • pg功能略弱与Oracle(不支持索引组织表等)
  • pg支持的类型多,比如: 网络地址类型,XML, JSON, UUID, 数组,正则表达式函数where中可用正则,可用perl/Python等写存储过程 更小巧

参考: postgresql 修炼之道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章