MySQL 和 PostgreSQL 的比较
通过执行 MySQL 命令(mysqld)启动实例。
一个实例可以管理一个或多个数据库。一台服
务器可以运行多个 mysqld 实例。一个实例管
理器可以监视 mysqld 的各个实例。
通过执行 Postmaster 进程(pg_ctl)启动
实例。一个实例可以管理一个或多个数据
库,这些数据库组成一个集群。集群是磁盘
上的一个区域,这个区域在安装时初始化并
由一个目 录组成,所有数据都存储在这个
目录中。使用 initdb 创建第一个数据库。
一台机器上可以启动多个实例。
数据库是命名的对象集合,是与实例中的其他
数据库分离的实体。一个 MySQL 实例中的
所有数据库共享同一个系统编目。
数据库是命名的对象集合,每个数据库是与
其他数据库分离的实体。每个数据库有自己
的系统编目,但是所有数据库共享
pg_databases。
通过 innodb_buffer_pool_size 配置参数
设置数据缓冲区。这个参数是内存缓冲区的字
节数,InnoDB 使用这个缓冲区来缓存表的数
据和索引。在专用的数据库服务器上,这个参
数最高可以设置为机器物理内存量的 80%。
Shared_buffers 缓存。在默认情况下分配
64 个缓冲区。默认的块大小是 8K。可以通
过设置 postgresql.conf 文件中的
shared_buffers 参数来更新缓冲区缓存。
客户机使用 CONNECT 或 USE 语句连接
数据库,这时要指定数据库名,还可以指定用
户 id 和密码。使用角色管理数据库中的用户
和用户组。
客户机使用 connect 语句连接数据库,这
时要指定数据库名,还可以指定用户 id 和
密码。使用角色管理数据库中的用户和用户
组。
MySQL 在数据库级管理身份验证。 基本只
支持密码认证。
PostgreSQL 支持丰富的认证方法:信任认
证、口令认证、Kerberos 认证、基于 Ident
的认证、LDAP 认证、PAM 认证
可以在表级指定密码来对数据进行加密。还可
以使用 AES_ENCRYPT 和
可以使用 pgcrypto 库中的函数对列进行加
密/解密。可以通过 SSL 连接实现网络加