【问题标题】:Updating 10,000 cck fields daily in drupal在 drupal 中每天更新 10,000 个 cck 字段
【发布时间】:2010-10-20 08:13:06
【问题描述】:

我们的一个站点有大约 10,000 个节点。在每个节点中,都有一个简单的 cck 文本/整数字段。这个整数每天都在变化,所以它们需要每天更新。整数范围为 1 到 20000000。 cck 字段跨越所有内容类型,因此它在数据库中有自己的表。我们不使用修订。我选择让它读取一个 csv 文件,因为这个表非常简单,有 3 个字段。所有整数。我不需要进行 php 数组类型导入的所有灵活性。

我创建了一个 cron 作业来每天执行一个 php 脚本,其中包含类似于:


LOAD DATA LOCAL  INFILE 'file.csv'
REPLACE INTO TABLE content_field_mycckfield
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(vid, nid, field_mycckfield_value);

在脚本结束时,它会统计导入的记录数,报告成功和错误。 该文件低于公开,所有爵士乐。

我还缺少其他步骤吗?有什么我应该注意或小心的吗?

是否应该在每次运行后优化或整理此表?还是每 (x) 次运行?

我是否应该先将其导入 temp_ 表以规范化数据,然后将其复制/移动到 TABLE content_field_mycckfield 中?

【问题讨论】:

    标签: database drupal import cck


    【解决方案1】:

    10,000 条记录很大,但在 MySQL 方面并不庞大,而且该表足够简单,我认为您不需要任何优化。如果表中的数据是可靠的,并且您的 .csv 格式始终正确,则不会有太多问题。

    另一个问题是您的导入过程是否引发错误。如果 .csv 甚至极有可能包含不正确的列引用、丢失的逗号等,那么您在临时表中测试所有内容的想法肯定是一个好主意。

    我唯一能想到的其他事情是(按神经质顺序)

    • 在夜间或您的网站未使用时执行此操作
    • 让 PHP 脚本捕获错误并将每次运行的结果通过电子邮件发送给您
    • 让脚本备份表,运行 .csv,检查错误,如果有错误,则通过电子邮件向您发送并同时恢复备份

    希望对您有所帮助!

    【讨论】:

    • 啊,是的,我需要从您的列表中添加项目符号 2 和 3。谢谢,这对很多人都有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多