所有的数据库离开数据量来谈性能都是耍流氓。
就你那几万条的数据库,用啥都行,典型的就是怎么方便怎么来。
不过 PostgreSQL 上手确实比 MySQL 概念更多。
PostgreSQL 比 MySQL 多了一层。
PostgreSQL 是从PostgreSQL 是从 Database,到 Schema 再到 Table
MySQL 就直接从 Database 到表了。
Schema
这个单词的翻译有点乱七八糟,有些人会翻译成模式。
其实数据库中,这个单词被翻译成命名空间多一些。
因为 PostgreSQL 比 MySQL 多了一个命名空间(Schema)那么去找对应的话,就有点困惑不知道 Schema 对应的是 MySQL 的是什么了。
其实 Schema 对应的就是 MySQL 的数据库。
PostgreSQL 的一个数据库就 MySQL 在机器上安装的整个实例了。
数据互访
比如说 PostgreSQL 有 2 个数据库 DB0 和 DB1,那么对应 MySQL 就是需要有 2 个实例,这 2 个实例对应的 MySQL 需要运行在不同的端口中。
PostgreSQL 互通性
PostgreSQL 的数据库定义的对饮 MySQL 的 2 个实例的话,那么在实例之间进行数据通信是比较困难的。
同样的,PostgreSQL 也是这样的,PostgreSQL 的数据库是互相独立的,是不能互相访问的。
PostgreSQL 的 Schema 在不同的命名空间中的数据是可以互相访问的。
不同命名空间中的表名字可以完全一致。
比如说我们有2个命名空间分别为 S1和 S2,但这 2 个命名空间中都有一个相同名称的表叫做 T1和T1,这个是可以存在的。
总结
因为 PostgreSQL 对比 MySQL 多了一层逻辑结构,所以 PostgreSQL 比 MySQL 的理解上面更加复杂,同时用户的授权也更加麻烦。
这也就是为什么很多人拿到 PostgreSQL 开始的时候都不知道表在哪里。
https://www.isharkfly.com/t/postgresql/15347