postgresql

1.历史背景:
    mysql是一个成熟的的商业公司,所以MySQL开发更为慎重、严谨;
    postgrasql是支援开发组

2.数据类型一样:
    postgrasql:支持array,
                json和jsonb,比text存储接送的效率更高
                    json:存储的文本,json每次都解析存储的值,不支持索引,但可以查询创建表达式的值
                    jsonb:存储的是二进制格式,避免了重新解析数据结构。支持索引,可以不使用索引就查询任何路径
                使用json的优势可以轻易整合关系型数据和非关系型数据,

3.PostgraSQL数据库提供完全的RESTful API服务
    很多的后台数据库逻辑不用重复写了,直接前端就可以请求数据。除了开发效率提高,数据访问操作的效率也会提高

4.支持R-trees这样可扩展的索引类型,可以更方便的处理一些特殊数据。

5.有强悍的SQL编程能力
    支持递归,有丰富的统计函数和统计语法支持
    PostgreSQL:没有单独的存储过程,都是通过函数实现的

6.支持外部数据源
    可以把70种外部数据源(包括MySQL,Oracle,CSV)当成数据中的表来查询
    外部数据封装器(Foreign Data Wrapper,FDW)”的特性
    FDW提供了一个SQL接口,用于访问远程数据存储中的远程大数据对象,使DBA可以整合来自不相关数据源的数据,将它们存入Postgres数据库中的一个公共模型
    例如,使用FDW for MongoDB

7.没有字符串长度限制
    text 能支持各种大小
    一般关系型数据库字符串的长度在8k左右,无限制TEXT类型的功能受限,只能作为外部大数据的访问。
    而PostgraSQL的text类型可以直接访问,SQL语法内置正则表达式,可以索引,可以全文索引,或使用xml,xpath
    
8.支持图结构数据结构
    https://mp.weixin.qq.com/s/cjor82wgDu5gzDvTYpLDWw
    
9.对索引的支持更强
    PostgraSQL可以使用函数和条件索引,这使得PostgraSQL数据库的调优非常灵活,MySQL就没有这个功能,条件索引在Web应用中很重要的。
    对于索引类型:
        MySQL:取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE
        PostgraSQL:支持B-树、哈希、R-树和GIST索引
        InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。PostgreSQL不存在这个问题。

10.集群支持好

11.事物隔离做的更好


对于简单繁重的读取操作,使用PostgreSQL可能有点小题大做,同时性能也比MySQL这样的同类产品要差。除非你需要绝对的数据完整性,ACID遵从性或者设计复杂,否则PostgreSQL对于简单的场景而言有点多余。

如何你确定只在MySQL和PostgreSQL中进行选择,以下规则总是有效的:
如果你的操作系统是Windows,你应该使用MySQL。
当绝对需要可靠性和数据完整性的时候,PostgreSQL是更好的选择。
如果需要数据库执行定制程序,那么可扩展的PostgreSQL是更好的选择。
你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。
如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么,你应该使用MySQL。 
    

引自:
https://blog.csdn.net/hj7jay/article/details/65434955

操作PSQl
https://blog.csdn.net/smstong/article/details/17138355
https://www.cnblogs.com/shineqiujuan/p/4703304.html

你可能感兴趣的:(postgresql)