ITPub博客

首页 > 数据库 > > PostgreSQL 数据库到底要为谁服务,来自28335.87公里外的想法

PostgreSQL 数据库到底要为谁服务,来自28335.87公里外的想法

作者:liuaustin 时间:2020-03-13 17:20:44 0 删除 编辑

如果关注开源技术,其实法国人在MYSQL 和PG 上是毫不示弱的。MYSQL 的那位就不提了,MHA MGR 代理高可用的那位大神,估计使用过他的软件的人不会太少,但知道那个软件是他的的人,太少。

今天看看另一位,法国的Artist OF postgresql , 这位哥哥目前为 Citus 工作,写过的PG的书也是不少了。

偶然看到他的演讲,名字就叫 The art of postgresql 。

——————————————————————————————

以下为翻译内容(听的有时候不大准,英语太烂,一个法国人说的英语,请谅解其中的一些失误)


今天我要讲的是,The art of postgresql,我想问问这屋子里面是开发者多还是DBA ,是开发者的举手。希望我今天的演讲能帮助更多的开发者。


我先介绍以下我自己,我服务于POSTGRESQL 是在上个世纪,我现在的工作在citus 一个分布式的Postgresql的版本,当然他现在属于微软,这个分布式的版本,对于你有很多数据库时时有帮助的。你可以有很多的works以及coordinator 每一片有不同的数据,然后发送SQL从不同的分片上获取数据。

 

Ok我们开始正题


Why PostgreSQL ?

开发人员为什么要用 PostgreSQL,如果你在一个公司使用不同的程序栈例如JAVA, python , PHP 等等, postgresql 会给你解决什么问题,developer 用什么来存储,将需要存储的东西变为 XML 存入内存,或者存储在AWS S3 等等都可以,POSTGRESQL 不是要解决你的存储的问题,POSTGRESQL 是要解决你的数据管理,解决数据的一致性和隔离的问题,我们的用户在同一个时间使用同一个应用程序,

你的程序是来解决一个用户在一个时间点的问题,数据库要解决的是整个用户群在一个时间点的问题,例如一些操作的顺序性,来保证你整个商业逻辑的正确性。

我们如何解决一致性,关系数据库要解决的问题 ACID,学过DBMS 都应该知道。那那种数据库没有ACID, 台底下说出 MONGODB ,一片哄笑,大爷说着不是我挑起来的。另外说起MYSQL,如果要使用外键规则来检测你商业的正确性,你只能在你的应用程序上来做,MYSQL 让你在数据库级别上丢失了一致性。

开发者知道自己在做什么,那是最好,但你要记住,你需要在应用程序里面来处理这样的关系,你自己来保证ACID。再给你们举个例子,如果你们要进行DD语句的操作,如果此时你的磁盘已经满了,你的系统应该回滚,但有些数据库就不行,如果遇到这样的情况你都不知道你在哪(画外音,纯粹和MYSQL过不去),你们应该很庆幸,POSTGRESQL 可以回滚在这样的情况下。很高兴的告诉你们POSTGRESQL DD 也是支持一致性的。

我们在来谈谈到底是在应用程序上做一致性检测好,还是在数据库上做好,两者的工作量以及你的代码量都是不一样的,通常他们是交替的,你中有我我中有你。


(省略翻译,这个大爷又把isolation解释了一遍),但整体都是在通过application来对应数据库的isolation.

Postgresql 可以给开发者什么,这才算是一个数据库重要的部分

1 Transactions  (real transactions)

2 SQL (complicated SQL)

3 object Oriented

4  Extenstions

5 Rich data types

6 data processing

7 advanced indexing

8 Arrays xml json

下面这大爷,开始讲 SQL for Developers

从上下两个图,中可以看出POSTGRESQL 更改字段的类型,是非常方便的。尤其在你有一亿的数据量的情况下。

接下来是 SQL  and Algorithms(算法),大爷,直接给出两个对比

完成同样的功能,PYTHON 要多少行,SQL 写的很简单,一目了然。

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-11-13

  • 博文量
    1980
  • 访问量
    518190