Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新或插入一个包含6000万条目的mysql数据库_Mysql_Database_Optimization - Fatal编程技术网

更新或插入一个包含6000万条目的mysql数据库

更新或插入一个包含6000万条目的mysql数据库,mysql,database,optimization,Mysql,Database,Optimization,我有一个mysql数据库,它有一个大约6000万条的表,主键是“x”。我有一个数据集(csv文件),其中也有大约6000万条条目。此数据集还具有索引“x”。对于mysql表和dataset共有的键“x”的值,mysql表中的相应条目只会随着计数器变量的增量而更新。将插入数据集中的新数据 在一个简单的串行执行中,我们尝试更新条目(如果存在),否则insert大约需要8小时才能完成。如何提高整个过程的速度?计划A:IODKU,正如@Rogue建议的那样 方案B:两个SQL;它们可能会运行得更快,因为

我有一个mysql数据库,它有一个大约6000万条的表,主键是“x”。我有一个数据集(csv文件),其中也有大约6000万条条目。此数据集还具有索引“x”。对于mysql表和dataset共有的键“x”的值,mysql表中的相应条目只会随着计数器变量的增量而更新。将插入数据集中的新数据


在一个简单的串行执行中,我们尝试更新条目(如果存在),否则insert大约需要8小时才能完成。如何提高整个过程的速度?

计划A:IODKU,正如@Rogue建议的那样

方案B:两个SQL;它们可能会运行得更快,因为8小时的一部分时间是在崩溃时收集大量的撤销信息。与这两个查询非常接近

方案C:遍历这对表,使用其中一个表的
主键
,将IODKU分成块,比如说1000行。查看我的代码(并将其从
DELETE
调整为
IODKU

在方案B和方案C中,启用
自动提交
,这样就不会建立一个庞大的重做日志

计划D:在使用
连接合并两个表时构建一个新表。以原子弹结尾

RENAME TABLE real TO old,
             new TO real;
DROP TABLE old;   -- when happy with the result.

方案E:方案D+插入的
分块。。。选择real JOIN tmp…

插入到。。。关于重复密钥更新
您所说的数据集是什么意思?CSV文件?数据库没有条目,但数据库中的表有条目。您的术语不清楚。是的数据集是csv文件。我说的数据库是指数据库中的表。谢谢。让我试试这些,看看我能得到什么样的效率。