@JunQiu
2018-09-25T09:57:52.000000Z
字数 919
阅读 1244
MYSQL-VS-PG
summary_2018/09
mysql
pgsql
1、日常
1.1、MYSQL-PG对比
2、技术
2.1、MYSQL-PG对比
- 数据类型:PG的数据类型比MYSQL的数据类型更加丰富,支持arrary,json,设计jsonb数据结构来支持文档数据库的功能。虽然MYSQL也有json数据结构,但是感觉PG好用一点。
- 稳定性:据说PG在崩溃、断电之类的灾难场景下的稳定性比MYSQL好一些。(验证不了)
- 索引类型:PG支持btree , hash , gin , gist , sp-gist , brin , bloom , rum , zombodb , bitmap等多种索引,MYSQL要少一点btree,全文索引,Ttree,Geospatail等。
- SQL语句:PG支持窗口函数,递归函数之类,虽然MYSQL也能实现大多数相同的效果,但是要复杂一些。
- ACID特性:PostgreSQL从一开始就符合ACID标准,确保满足所有要求;MYSQlL在MySQL + InnoDB条件下支持。
- SQL规范:PG几乎完全符合,MSQL要稍微差一点点。
- NOSQL和Json:PostgreSQL支持JSON和其他NoSQL功能,如本机XML支持和使用HSTORE的键值对。它还支持索引JSON数据以加快访问速度。MySQL具有JSON数据类型支持,但没有其他NoSQL功能。不支持JSON的索引。
- Replication:PG提供多种复制技术,MYSQL标准的主从备份。
- Materialized Views/Temporary Tables:PG均支持,MYSQL MEMORY支持临时表。
- 插入和查询性能:MySQL Might Be Right for Uber, but Not for You(理论上应该在具体场景下分析,MYSQL有不同的存储引擎)
- 运维:PG和MYSQL基本差不多
- 可拓展性:没有太大的差别,没有mongodb那种分片操作
- 其它:
- Postgres要求子进程建立连接,每个连接最多可能需要10 MB。与MySQL的每线程连接模型相比,内存压力更大,其中线程的默认堆栈大小在64位平台上为256KB。
- 参考文献