Oracle、MySQL、PostgreSQL对比

在对比 Oracle、MySQL 和 PostgreSQL 关于 range/list 分区键更新操作时,

  1. Oracle:

    • 默认情况下不允许对分区键进行更新操作,否则会报错 ORA-14402: updating partition key column would cause partition to change
    • 可以通过设置 ALTER TABLE table_name ENABLE ROW MOVEMENT; 来允许分区键的更新操作,这将允许数据跨分区移动 。
  2. MySQL:

    • MySQL 支持在分区表上执行 UPDATE 操作,但必须确保更新的数据满足分区规则,即更新后的分区键值必须位于正确的分区中 。
    • 对于 RANGE 分区,可以使用 ALTER TABLE ... REORGANIZE PARTITION 来移动数据到不同的分区 。
  3. PostgreSQL:

    • PostgreSQL 在 10 版本之前不支持分区表,从 10 版本开始引入分区表,但在 11 版本之前不支持分区键的更新操作 。
    • 从 11 版本开始,PostgreSQL 支持分区键的更新操作,如果分区键字段被更新,系统会自动将记录转移到合适的分区中 。

PG和MySQL的区别

特性 MySQL PostgreSQL
实例 通过执行 MySQL 命令(mysqld)启动实例。 一个实例可以管理一个或多个数据库。 一台服务器可以运行多个 mysqld 实例。 一个实例管理器可以监视 mysqld 的各个实例。 通过执行 Postmaster 进程(pg_ctl)启动实例。 一个实例可以管理一个或多个数据库,这些数据库组成一个集群。集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中。 使用 initdb 创建第一个数据库。 一台机器上可以启动多个实例。
数据库 数据库是命名的对象集合,是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。 数据库是命名的对象集合,每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目,但是所有数据库共享 pg_databases。
数据缓冲区 通过 innodb_buffer_pool_size 配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数,InnoDB 使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上,这个参数最高可以设置为机器物理内存量的 80%。 Shared_buffers 缓存。在默认情况下分配 64 个缓冲区。默认的块大小是 8K。可以通过设置 postgresql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值