加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长资讯 > 评论 > 正文

医疗保健中智能自动化的兴起

发布时间:2021-02-06 14:39:47 所属栏目:评论 来源:互联网
导读:(3) 在线操作功能较弱 很多在线DDL需要重建表,代价很大,有一些操作还会锁表。一些大的互联网公司或者修改MySQL源码来实现在线DDL功能,或者通过上层架构来解决这个问题,如先在Slave数据库上把DDL做完,然后把应用从Master库切换到Slave库,再到原先的Mast

(3) 在线操作功能较弱

很多在线DDL需要重建表,代价很大,有一些操作还会锁表。一些大的互联网公司或者修改MySQL源码来实现在线DDL功能,或者通过上层架构来解决这个问题,如先在Slave数据库上把DDL做完,然后把应用从Master库切换到Slave库,再到原先的Master上把DDL做完。

对于第一种方法,需要公司有很强的MySQL研发能力,第二种方法则需要公司有较强的开发能力,能设计出较强的应用架构。这对于一些中小型公司来说不太容易实现。

(4) 难以写插件来扩展MySQL的功能

虽然用UDF,或通过外部动态库中的函数来扩展部分功能,但能扩展的功能很有限。如MySQL比较难访问其他数据库中的数据。

相对MySQL的这些弱点,PostgreSQL有以下几个优点。

  • 功能强大

支持所有主流的多表连接查询的方式,如“Nest loop”“Hash JOIN”“Sort Merge JOIN”等;支持绝大多数的SQL语法,如CTE(MySQL8.0之前不支持CTE)。

PostgreSQL是笔者见过的对正则表达式支持最强、内置函数也是最丰富的数据库。它的字段类型还支持数组类型。除了可以使用PL/PGSQL写存储过程外,还可以使用各种主流开发语言的语法(如Python语言的PL/Python、Perl语言的PL/Perl来写存储过程)。

这些强大的功能可以大大地节约开发资源。很多开发人员在PostgreSQL上做开发时,会发现数据库已实现很多功能,甚至有一些业务功能都不再需要写代码来实现了,直接使用数据库的功能即可解决问题。

  • 性能优化工具与度量信息丰富

PostgreSQL数据库中有大量的性能视图,可以方便地定位问题(比如可以看到正在执行的SQL,可以通过锁视图看到谁在等待,以及哪条记录被锁定等)。PostgreSQL中设计了专门架构和进程用于收集性能数据,既有物理I/O方面的统计,也有表扫描及索引扫描方面的性能数据。

  • 在线操作功能好

PostgreSQL增加空值列时,本质上只是在系统表上把列定义上,无须对物理结构做更新,这就让PostgreSQL在加列时可以做到瞬间完成。PostgreSQL还支持在线建索引的功能,在创建索引的过程可以不锁更新操作。

从PostgreSQL9.1开始,支持同步复制(synchronous replication)功能,通过Master和Slave之间的复制可以实现零数据丢失的高可用方案。

  • 可以方便地写插件来扩展PostgreSQL数据库的功能

PostgreSQL提供了安装、编写插件的整体框架,如提供了create extension等SQL语句以方便地装载插件;写一个动态库可以很方便地给PostgreSQL添加函数;提供了外部数据源(FDW)的框架和编程接口,根据此框架和编程接口可以方便地编写访问其他数据库和外部数据源的插件。

现在针对已有的常见外部数据源,如Oracle、MySQL、SQL Server等数据库都有了第三方插件,通过这些第三方插件可以在PostgreSQL数据库中方便地访问外部数据。另外,PostgreSQL还提供了钩子函数的接口,可以实现更强大功能的插件,如pg_pathman分区表的插件、citus分库分表的插件等。

另外,由于MySQL对SQL语法支持的功能较弱,基本上不适合做数据仓库。虽然也有些厂商开发了MySQL数据仓库的存储引擎(如Infobright),但这个方案只是解决了部分数据仓库的问题,SQL功能弱的问题还是无法完全解决。

而且Infobright的社区版本在功能上有很多限制,如不支持数据更新、不支持太多的并发执行(最多支持十几个)等。而PostgreSQL不仅支持复杂的SQL,还支持大量的分析函数,非常适合做数据仓库。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读