现在 MySQL 归 Oracle 所有,许多人开始考虑使用一些流行的分支,例如 MariaDB 和 Drizzle。
有没有人在生产中长时间使用这些?如果是这样,功能是否稳定,体验是否可与 MySQL 相媲美?
我们还没有使用 MySQL 分支,但是对于我们的案例(生物信息学数据库),切换到 PostgeSQL 非常有效。Web 应用程序(Cellwall Navigator、10k 行 Perl 代码和 10 个 db 表)在 MySQL 上运行了 5 年。我们花了2天时间调整SQL迁移到Postgres。
除了与数据库的连接之外,没有应用程序编码需要调整。
调整是:
像这样用 Postgres md5() 替换 MySQL password()
SELECT id FROM users WHERE email = ? AND password = password(?)变成SELECT id FROM users WHERE email = ? AND password = md5(?)
将 MySQL STRAIGHT_JOIN 轻松转换为常规 JOIN
MySQL 允许的原始 SQL(在迁移前适用于应用程序):
SELECT sequence.id, ... FROM sequence JOIN xlink ON xlink.sequence = sequence.id WHERE xlink.accession = ? GROUP BY sequence.id
Run Code Online (Sandbox Code Playgroud)
我们将其调整为适用于 PostgeSQL 的正确 SQL,并适用于应用程序:
SELECT DISTINCT sequence.id, ... FROM sequence JOIN xlink ON xlink.sequence = sequence.id WHERE xlink.accession = ?
Run Code Online (Sandbox Code Playgroud)