【问题标题】:Faster method for migrating AND processing data between MySQL databases在 MySQL 数据库之间迁移和处理数据的更快方法
【发布时间】:2015-05-12 04:19:52
【问题描述】:

我正在尝试规范化架构。我在 CMS 中使用了一个 MySQL 数据库,并且数据模式非常有问题。例如,为了获取一个实体的所有属性和子属性,我必须查询几个表并进行一些数据库后处理。有几个子属性存储在一个字段的 JSON 字符串中,当您解析该 JSON 时,它会为您提供数据库中另一个表的外键 ID。与数据库交谈,然后处理内容,然后再次与数据库交谈,这有点混乱。

我正在尝试创建一个可以按 cron 计划运行的脚本,该脚本将从现有系统中获取数据,对其进行处理,然后将其放入具有规范化架构的不同数据库中。

我最初创建了一个 PHP 脚本来执行此操作,但对于仅包含 350 种产品(共 100k)的一个类别(约 800 种),该脚本大约需要 5 分钟才能完成。我需要更快的东西。我的脚本使用ADODB library 与mysql 交互。

这里有一些选项(因为格式是问题/答案),我很好奇其中一个选项的性能是否会成倍提高:

  • 原始 PHP(无库)
  • PHP 与 Phalcon
  • perl
  • Node.js
  • 别的东西..

【问题讨论】:

  • 您可能希望提供您当前使用的代码的典型示例。人们或许能够针对您目前拥有的资源提供优化策略。

标签: mysql data-migration


【解决方案1】:

我想你可能想在 mysql 本身中编写一些“翻译”程序来处理旧数据并直接生成新条目。它可以比其他解决方案更快。

如果查询性能不是问题,您可以根据当前架构创建一些视图(过程、函数),让您的进一步编程更容易。一些物化视图实际上可以帮助提高性能。

如果您必须在 MySQL 之外“转换”一个庞大的数据库,您可以先将“结果”写入磁盘文件(文本或 sql),然后在转换所有“数据”后将它们导入 MySQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-04
    • 2014-02-19
    • 2012-11-16
    • 2021-04-11
    • 2015-08-23
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多