特性MySQLPostgresQL实例通过执行 MySQL 命令mysqld启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进pg_ctl启动实例。一个实例可以管理一个或多个数据库这些数据库组成一个集群。集群是磁盘上的一个区域这个区域在安装时初始化并由一个目录组成所有数据都存储在这个目录中。使用 initdb创建第一个数据库。一台机器上可以启动多个实例。数据库数据库是命名的对象集合是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。数据库是命名的对象集合每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目但是所有数据库共享 pg_databases。备份、恢复和日志InnoDB 使用写前write-ahead日志记录。支持在线和离线完全备份以及崩溃和事务恢复。需要第三方软件才能支持热备份。在数据目录的一个子目录中维护写前日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复。 可以支持热备份。数据缓冲区通过 innodb_buffer_pool_size 配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数InnoDB使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上这个参数最高可以设置为机器物理内存量的 80%。Shared_buffers 缓存。在默认情况下分配 64个缓冲区。默认的块大小是 8K。可以通过设置postgresql.conf 文件中的 shared_buffers 参数来更新缓冲区缓存。并发控制支持表级和行级锁。InnoDB 存储引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和SERIALIZABLE。使用 SETTRANSACTION ISOLATION LEVEL语句在事务级设置隔离级别。支持表级和行级锁。支持的 ANSI 隔离级别是Read Committed默认 —— 能看到查询启动时数据库的快照和 Serialization与Repeatable Read 相似 —— 只能看到在事务启动之前提交的结果。使用 SET TRANSACTION语句在事务级设置隔离级别。使用 SET SESSION在会话级进行设置。PostgreSQL主要优势PostgreSQL完全免费而且是BSD协议如果你把PostgreSQL改一改然后再拿去卖钱也没有人管你这一点很重要这表明了PostgreSQL数据库不会被其它公司控制。oracle数据库不用说了是商业数据库不开放。而MySQL数据库虽然是开源的但现在随着SUN被oracle公司收购现在基本上被oracle公司控制其实在SUN被收购之前MySQL中最重要的InnoDB引擎也是被oracle公司控制的而在MySQL中很多重要的数据都是放在InnoDB引擎中的反正我们公司都是这样的。所以如果MySQL的市场范围与oracle数据库的市场范围冲突时oracle公司必定会牺牲MySQL这是毫无疑问的。与PostgreSQl配合的开源软件很多有很多分布式集群软件如pgpool、pgcluster、slony、plploxy等等很容易做读写分离、负载均衡、数据水平拆分等方案而这在MySQL下则比较困难。PostgreSQL源代码写的很清晰易读性比MySQL强太多了怀疑MySQL的源代码被混淆过。所以很多公司都是基本PostgreSQL做二次开发的。PostgreSQL在很多方面都比MySQL强如复杂SQL的执行、存储过程、触发器、索引。同时PostgreSQL是多进程的而MySQL是线程的虽然并发不高时MySQL处理速度快但当并发高的时候对于现在多核的单台机器上MySQL的总体处理性能不如PostgreSQL原因是MySQL的线程无法充分利用CPU的能力。
PostgreSQL 介绍和特性
发布时间:2026/7/7 7:56:58
特性MySQLPostgresQL实例通过执行 MySQL 命令mysqld启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进pg_ctl启动实例。一个实例可以管理一个或多个数据库这些数据库组成一个集群。集群是磁盘上的一个区域这个区域在安装时初始化并由一个目录组成所有数据都存储在这个目录中。使用 initdb创建第一个数据库。一台机器上可以启动多个实例。数据库数据库是命名的对象集合是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。数据库是命名的对象集合每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目但是所有数据库共享 pg_databases。备份、恢复和日志InnoDB 使用写前write-ahead日志记录。支持在线和离线完全备份以及崩溃和事务恢复。需要第三方软件才能支持热备份。在数据目录的一个子目录中维护写前日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复。 可以支持热备份。数据缓冲区通过 innodb_buffer_pool_size 配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数InnoDB使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上这个参数最高可以设置为机器物理内存量的 80%。Shared_buffers 缓存。在默认情况下分配 64个缓冲区。默认的块大小是 8K。可以通过设置postgresql.conf 文件中的 shared_buffers 参数来更新缓冲区缓存。并发控制支持表级和行级锁。InnoDB 存储引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和SERIALIZABLE。使用 SETTRANSACTION ISOLATION LEVEL语句在事务级设置隔离级别。支持表级和行级锁。支持的 ANSI 隔离级别是Read Committed默认 —— 能看到查询启动时数据库的快照和 Serialization与Repeatable Read 相似 —— 只能看到在事务启动之前提交的结果。使用 SET TRANSACTION语句在事务级设置隔离级别。使用 SET SESSION在会话级进行设置。PostgreSQL主要优势PostgreSQL完全免费而且是BSD协议如果你把PostgreSQL改一改然后再拿去卖钱也没有人管你这一点很重要这表明了PostgreSQL数据库不会被其它公司控制。oracle数据库不用说了是商业数据库不开放。而MySQL数据库虽然是开源的但现在随着SUN被oracle公司收购现在基本上被oracle公司控制其实在SUN被收购之前MySQL中最重要的InnoDB引擎也是被oracle公司控制的而在MySQL中很多重要的数据都是放在InnoDB引擎中的反正我们公司都是这样的。所以如果MySQL的市场范围与oracle数据库的市场范围冲突时oracle公司必定会牺牲MySQL这是毫无疑问的。与PostgreSQl配合的开源软件很多有很多分布式集群软件如pgpool、pgcluster、slony、plploxy等等很容易做读写分离、负载均衡、数据水平拆分等方案而这在MySQL下则比较困难。PostgreSQL源代码写的很清晰易读性比MySQL强太多了怀疑MySQL的源代码被混淆过。所以很多公司都是基本PostgreSQL做二次开发的。PostgreSQL在很多方面都比MySQL强如复杂SQL的执行、存储过程、触发器、索引。同时PostgreSQL是多进程的而MySQL是线程的虽然并发不高时MySQL处理速度快但当并发高的时候对于现在多核的单台机器上MySQL的总体处理性能不如PostgreSQL原因是MySQL的线程无法充分利用CPU的能力。