【发布时间】:2017-09-28 20:42:45
【问题描述】:
我正在开发一个内置 laravel 5.3 的项目。我有一张名为names 的表。我有两列,id和u_names。表 names 包含 4,550,000+ 行。我以前没有处理过这样的庞大数据。现在的问题是该表包含重复记录。现在我被要求复制这个然后删除这个原始表并重新创建它。导入后,copied table 使用 PHP 的 select distinct 查询进入新创建的原始表,因此每条记录在原始表中都是唯一的。我知道用foreach loop 来做这件事,但不知道如果记录数量超过 450 万会发生什么。以及memory_limit 和max_exicution_time 等需要哪些配置。
【问题讨论】:
-
你看过
mysqldump;您是否有权在命令行中运行查询? -
我不确定我是否理解您的问题,但是为什么您需要涉及 PHP 以及删除表和创建新表的部分? stackoverflow.com/questions/3311903/… 或 mysqltutorial.org/mysql-delete-duplicate-rows 会起作用吗?
-
我会使用
INSERT INTO ... SELECT并让数据库完全处理它...阅读dev.mysql.com/doc/refman/5.7/en/insert.html -
@Mjh 你写了一个太长的答案,而你的行
We'll use INSERT INTO ... SELECT足以解决我的问题。多谢兄弟。你的回答肯定解决了我的问题。