gpt4 book ai didi

php - 在 mysql 表中上传大约 10,000,000 条记录的大型 CSV 文件也包含重复行

转载 作者:可可西里 更新时间:2023-11-01 07:04:44 26 4
gpt4 key购买 nike

我想在 mysql 表中上传一个大约 10,000,000 条记录的大型 csv 文件,其中还包含相同或更多的编号。记录和一些重复记录。我尝试了 Local data infile 但它也需要更多时间。我如何在不等待很长时间的情况下解决这个问题。如果无法解决,那么我如何使用 AJAX 发送一些记录并一次处理它,直到整个 csv 被上传/处理为止。

最佳答案

LOAD DATA INFILE 在速度方面不会被击败。您可以采取一些措施来加快速度:

  • 删除或禁用一些索引(当然,您将在加载后等待它们构建。但这通常更快)。如果您使用的是 MyISAM,则可以 ALTER TABLE *foo* DISABLE KEYS,但不幸的是,InnoDB 不支持它。相反,你必须放弃它们。
  • 优化您的 my.cnf 设置。特别是,您可以禁用很多安全功能(如 fsync)。当然,如果发生崩溃,则必须恢复备份并重新开始加载。此外,如果您正在运行默认的 my.cnf,我最后检查了它对于数据库机器的次优选择。周围有大量调整指南。
  • 购买速度更快的硬件。或租用一些(例如,尝试快速的 Amazon ECC 实例)。
  • 正如@ZendDevel 所提到的,如果您不局限于 MySQL,请考虑其他数据存储解决方案。例如,如果您只是存储电话号码列表(以及一些数据),普通哈希表会快很多倍。

如果问题是它会破坏数据库性能,您可以将 CSV 文件拆分为多个 CSV 文件,然后分 block 加载它们。

关于php - 在 mysql 表中上传大约 10,000,000 条记录的大型 CSV 文件也包含重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com