mysql - 在 MySQL 中使用 PostgreSQL 作为存储引擎?

标签 mysql database postgresql relational-database storage-engines

一些程序要求底层数据库是MySQL。同样,像 GridSQL 这样的软件要求底层数据库是 PostgreSQL。如果将它们集成在一起,将会有很多优势,包括:

  1. 更容易在两者之间迁移。
  2. 可能会使用 MySQL 使用 PostgreSQL 复制
  3. 能够使用只能 与 MySQL 通信 PostgreSQL
  4. MySQL 中一种新的基于事务的存储引擎

我确实理解像 PostgreSQL 数组这样的东西不可能简单地将 MySQL 接口(interface)附加到任何 PostgreSQL 数据库,但是数据库是仅通过 MySQL 接口(interface)创建的,那么可以保证它不包含数组。

现在这不可能的其他原因是什么?

最佳答案

来自 MySQL 手册:

MySQL stores its data dictionary information for tables in .frm files in database directories. This is true for all MySQL storage engines

因此,在 MySQL 中没有可能的事务性 DDL,这是 PostgreSQL 中最方便的东西之一。在 MySQL 中使用 PostgreSQL 作为引擎会取消此选项。

PostgreSQL 还有一个更丰富的 SQL 字典,这可能会给 MySQL 带来问题。

另一个主要区别是 PostgreSQL 中模式的使用。在 MySQL 中称为数据库的东西在 PostgreSQL 中是一种模式。

恕我直言,如果你想使用 PostgreSQL,那么在 MySQL 中创建一个 PostgreSQL 引擎是没有意义的。恐怕你会因为 MySQL 的局限性而失去 PostgreSQL 最好的东西。

关于mysql - 在 MySQL 中使用 PostgreSQL 作为存储引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287575/

相关文章:

mysql - Mysql Like运算符问题

database - Scala, Play - 无法插入 Postgresql 数据库

postgresql - 从 JSON 数组连接列表

sql - 使用 PostgreSQL 仅连接关联表的最后一行

mysql - 我应该删除数据库中的禁止内容吗?

database - 使用触发器更新基于另一个表插入的表行?

mysql - 在 mysql 中选择名称中包含空格的数据库

php - 如何在 1 分钟后运行 PHP 函数?

php - 如何在数据库中存储许多图像

mysql - 将多个内容添加到mysql中的列x行位置