mysql - 如何分离一个巨大的表并运行循环来选择行并导入到新表中?

标签 mysql

我有一个巨大的表,其中包含 2400 万行数据。我想运行一个查询来选择一些数据并将其存储在新表中。

如何编写一个循环来执行此类操作?

选择前 250,000(250k) 行
运行查询
插入数据
选择另一个后续 250k 行
运行查询
插入数据。

最佳答案

    CREATE PROCEDURE WhileLoopProc()
    BEGIN
           DECLARE x  INT;
            SET X=0;
           WHILE(x<=24 MILLION) DO
           PREPARE stmt FROM "select u.user_id, u.firstname, u.lastname from  users u limit 250k     offset ?"; 
           EXECUTE stmt USING X; 
           set x=x+250k; 
           END WHILE;
   END

关于mysql - 如何分离一个巨大的表并运行循环来选择行并导入到新表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27388101/

相关文章:

php - 加入mysql查询

mysql - 如何从表 #2 中的结果过滤的表 #1 中选择结果?

mysql - 保存到数据库的值不正确

php - PHP 中加入的 MySQL 结果的排序输出

mysql - 字符集和排序规则到底是什么意思?

使用子选择的 MySQL 查询选择花费的时间太长

python - 修复密码哈希在导入到 MySQL 表时被截断的问题

php - 用于生产的 LAMP 堆栈?使用 PHP 5.4.x、Apache 2.4.x、MySQL 5.5.x

mysql - 连续日期的计数总和

php - _frontendCSRF cookie 似乎容易受到 SQL 注入(inject)攻击