赞
踩
postgresql和mysql有什么区别-mysql教程-PHP中文网
PostgreSQL相对于MySQL的优势
1、在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨;
2、存储过程的功能支持要比MySQL好,具备本地缓存执行计划的能力;
3、对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强;
4、PG主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。
5、PG的主备复制属于物理复制,相对于MySQL基于binlog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。
6、MySQL的存储引擎插件化机制,存在锁机制复杂影响并发的问题,而PG不存在。
MySQL相对于PostgreSQL的优势
1、innodb的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XID的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的IO和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀;
2、MySQL采用索引组织表,这种存储方式非常适合基于主键匹配的查询、删改操作,但是对表结构设计存在约束;
3、MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作;
4、MySQL分区表的实现要优于PG的基于继承表的分区实现,主要体现在分区个数达到上千上万后的处理性能差异较大。
5、MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。
总的来说,开源数据库都不是很完善,商业数据库oracle在架构和功能方面都还是完善很多的。从应用场景来说,PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而MySQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景(比如google、facebook、alibaba)。
————————————————
版权声明:本文为CSDN博主「远赴惊鸿人间舞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_33781072/article/details/113150605
编号 数据库类型 JDBC类型 JDBC索引
1 varchar java.lang.String 12
2 char java.lang.String 1
3 cidr java.lang.Object 1,111
4 inet java.lang.Object 1,111
5 macaddr java.lang.Object 1,111
6 text java.lang.String 12
7 int8 java.lang.Long -5
8 bytea byte -2
9 box java.lang.Object 1,111
10 circle java.lang.Object 1,111
11 float8 java.lang.Double 8
12 int4 java.lang.Integer 4
13 interval java.lang.Object 1,111
14 line java.lang.Object 1,111
15 lseg java.lang.Object 1,111
16 money java.lang.Double 8
17 numeric java.math.BigDecimal 2
18 path java.lang.Object 1,111
19 point java.lang.Object 1,111
20 polygon java.lang.Object 1,111
21 float4 java.lang.Float 7
22 int2 java.lang.Integer 5
23 int4 java.lang.Integer 4
24 time java.sql.Time 92
25 timestamp java.sql.Timestamp 93
26 bit java.lang.Boolean -7
27 varbit java.lang.Object 1,111
28 bool java.lang.Boolean -7
- 192.168.31.0
- 密码:123456
- port:5432
CREATE DATABASE runoobdb #创建数据库,数据库名为runoobdb
\l查看已经存在的数据库
连接所选择的数据库
Numeric(10,2) 指字段是数字型,长度为10 小数为两位的。其中10为精度,2为小数位数
numeric类型的小数位数是小数点右边的所有小数位,numeric的精度是所有数字的位数。
numeric(5,2)含义:例如数字 (5,2)是总位数是5,小数点后2位数字,也就是说,该字段的整数位数最多为3位。
- SELECT id,name FROM company; #从company表中选择一些属性的记录
- SELECT * FROM company; #从company表中选择所有属性记录
1、COALESCE用法:
COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非[null]值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。
2、::的作用==》 转换类型 a.dc::date + INTERVAL '1 DAY 7:20:00'
3、CAST(Expression AS Data_type)
SQL的CAST()——转换数据类型_sql cast_小白修炼晋级中的博客-CSDN博客
4、EXTRACT()("提取"的意思) 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。MySQL EXTRACT()函数 - MySQL教程 - 一点教程
array_agg(expression)
把表达式变成一个数组 一般配合 array_to_string() 函数使用
string_agg(expression, delimiter)
直接把一个表达式变成字符串
postgresql分组后把字段拼起来_group by 字段拼接_贪吃的猪的博客-CSDN博客
pgsql计算2个日期的差: 不支持year和month
date_part('day', cast(time1 as TIMESTAMP)- cast(time2 as TIMESTAMP))
计算月份差:
SELECT EXTRACT(MONTH FROM age(date2, date1)) AS months;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。