在 MySQL 个数据库之间迁移和处理数据的更快方法
Faster method for migrating AND processing data between MySQL databases
我正在尝试规范化架构。我在 CMS 中使用了一个 MySQL 数据库,但数据模式存在很大问题。例如,为了获取实体的所有属性和子属性,我必须查询几个table,还要进行一些post-DB 处理。有几个子属性存储在一个字段的 JSON 字符串中,当您解析 JSON 时,它会为您提供数据库中另一个 table 的外键 ID。与数据库对话,然后处理内容,然后再次与数据库对话,剩下的事情有点乱。
我正在尝试创建一个可以 运行 在 cron 计划上的脚本,它将从现有系统中获取数据,对其进行处理,然后将其放入不同的数据库中规范化架构。
我最初创建了一个执行此操作的 PHP 脚本,但对于仅包含 350 种产品(共 100k)的一个类别(约 800 个),该脚本大约需要 5 分钟才能完成。我需要更快的东西。我的脚本使用 ADODB library 与 mysql.
交互
这里有一些选项(因为格式是 question/answer),我很好奇其中之一的性能是否会成倍提高:
- 原始 PHP(无库)
- PHP 与 Phalcon
- perl
- Node.js
- 其他..
我想你可能想在 mysql 本身中编写一些 "translating" 程序来处理旧数据并直接生成新条目。它可以比其他解决方案更快。
如果查询性能不是问题,您可以根据当前模式创建一些视图(过程、函数),使您的进一步编程更容易。一些物化视图实际上可以帮助提高性能。
如果你必须 "transform" 在 MySQL 之外建立一个巨大的数据库,你可以先将 "results" 写入磁盘文件(文本或 sql),然后将它们导入到MySQL 你的 "data" 全部变身后。
我正在尝试规范化架构。我在 CMS 中使用了一个 MySQL 数据库,但数据模式存在很大问题。例如,为了获取实体的所有属性和子属性,我必须查询几个table,还要进行一些post-DB 处理。有几个子属性存储在一个字段的 JSON 字符串中,当您解析 JSON 时,它会为您提供数据库中另一个 table 的外键 ID。与数据库对话,然后处理内容,然后再次与数据库对话,剩下的事情有点乱。
我正在尝试创建一个可以 运行 在 cron 计划上的脚本,它将从现有系统中获取数据,对其进行处理,然后将其放入不同的数据库中规范化架构。
我最初创建了一个执行此操作的 PHP 脚本,但对于仅包含 350 种产品(共 100k)的一个类别(约 800 个),该脚本大约需要 5 分钟才能完成。我需要更快的东西。我的脚本使用 ADODB library 与 mysql.
交互这里有一些选项(因为格式是 question/answer),我很好奇其中之一的性能是否会成倍提高:
- 原始 PHP(无库)
- PHP 与 Phalcon
- perl
- Node.js
- 其他..
我想你可能想在 mysql 本身中编写一些 "translating" 程序来处理旧数据并直接生成新条目。它可以比其他解决方案更快。
如果查询性能不是问题,您可以根据当前模式创建一些视图(过程、函数),使您的进一步编程更容易。一些物化视图实际上可以帮助提高性能。
如果你必须 "transform" 在 MySQL 之外建立一个巨大的数据库,你可以先将 "results" 写入磁盘文件(文本或 sql),然后将它们导入到MySQL 你的 "data" 全部变身后。