在从技术而言,PG 功能丰富,SQL 支持得很完备,强大的数据类型,严谨的关系模型,很难从关系模型去找出PG
得
不合理之处,多年的积累,连全文索引词库都非常丰富,据说对于一些简单的搜索,都可以摆脱搜索引擎了,优化器做得很好,在代价选择上PG 实现了基因算法,这一点连Oracle 也没有做到。
也正因如此在早期mysql变成了事实上的互联网企业OLTP的事实标准。不管干啥业务,mysql都不可或缺。在行业里跳槽来跳槽去的程序员普遍对mysql也更熟悉。大量围绕mysql的商业服务都成为了行业主流。新一代分布式数据库,像TiDB为了吸引用户,首先要做的是“兼容mysql的语法”
数据库这种早期用了就基本不能换的东西是有滞后性的,你看到现在MySQL的现状,是5年前MySQL是国内几乎唯一选择的情况。5年前Postgres就已经在欧美初创项目里比较受欢迎了,PostgreSQL在全球也是二线,不独中国。PostgreSQL一直就功能比MySQL完备,唯独缺乏一个引爆点,导致生态长期不如MySQL。
两者之间区别:
Postgres是一个对象关系数据库(ORDBMS),具有表继承和函数重载等功能,可以处理复杂的查询和大型数据库。
而MySQL就是一个纯粹的关系数据库(RDBMS)相对易于建立和管理,快速,可靠且易于理解。
pg替代mysql,技术上没有任何问题。mysql能做到的,pg同样能做到,不说做得更好,至少是各有千秋。也是因为pgsql的确是好,这个查查就知道。当然现在pgsql集群方案也很多,所以我估计早期的时候,pgsql在集群方案上可能不如mysql。而且pgsql的地理信息支持是很好的……。
有一个优势是pg是BSD开源协议,允许在pg的基础上开发商业版和销售。对于商业化非常友好。而mysql是GPL协议,如果某软件使用了GPL协议,那该软件也必须开源。所以一定程度上mysql受到oracle的控制。
服务器优化的选项:MySQL提供了很多选项来调整和优化你的MySQL服务器,通过调整变量,如排序缓冲区大小,读缓冲区大小,最大允许包等。
易于使用和流行:MySQL的流
MySQL✿ SHOW COLUMNS FROM 表名称
举个栗子:
SHOW COLUMNS FROM ldcode
结果输出如图
pg✿ SELECT * FROM INFORMATION_SCHEMA.COLUMNS T WHERE T.TABLE_CATALOG='用户角色名' AND TABLE_NAME='表名称'
举个栗子:
SELECT table_schema,table_name,column_name,udt_name,character_maximum_length,data_type,ordinal_position
FROM information_schema.columns t
WHERE t.table_catalog='actuarial'
AND table_name ='ldcode'
order by ordinal_position
结果输出如图
MySQL、PostgreSQL属于关系型数据库 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。比较火的分布式数据库有tidb和 sequoiadb欢迎分享,转载请注明来源:内存溢出
评论列表(0条)