Mysql 数据库挑战:如何高效地更新100万条记录?
我正在努力更新我庞大的数据库,但由于这个大型更新/比较,我的wamp/Heidisql不断崩溃 我有两个数据库表:主表member\u all包含300万条记录,子表mobile\u results包含9000条记录。表的数据库结构如下所示:Mysql 数据库挑战:如何高效地更新100万条记录?,mysql,sql,database,sql-update,Mysql,Sql,Database,Sql Update,我正在努力更新我庞大的数据库,但由于这个大型更新/比较,我的wamp/Heidisql不断崩溃 我有两个数据库表:主表member\u all包含300万条记录,子表mobile\u results包含9000条记录。表的数据库结构如下所示: id name phoneWork phoneMobile phoneMobileNetwork 1 bill 061090999990 0789867676 Null 3 billsaasa 061090
id name phoneWork phoneMobile phoneMobileNetwork
1 bill 061090999990 0789867676 Null
3 billsaasa 06109094399990 076689867676 Null
id phoneMobile phoneMobileNetwork
8789 0789867676 Orange
238789 076689867676 O2
主表成员所有
表中的数据如下所示:
id name phoneWork phoneMobile phoneMobileNetwork
1 bill 061090999990 0789867676 Null
3 billsaasa 06109094399990 076689867676 Null
id phoneMobile phoneMobileNetwork
8789 0789867676 Orange
238789 076689867676 O2
子表:移动搜索结果
mobile_结果中的数据如下所示:
id name phoneWork phoneMobile phoneMobileNetwork
1 bill 061090999990 0789867676 Null
3 billsaasa 06109094399990 076689867676 Null
id phoneMobile phoneMobileNetwork
8789 0789867676 Orange
238789 076689867676 O2
9000手机号码的所有移动网络数据都存储在mobile_结果中,但当我尝试比较这两个表时,我被卡住了,我的wamp/Heidi sql崩溃了
我的问题是:
如何有效地使用来自移动搜索结果的phoneMobileNetwork值填充成员搜索结果
以下是我尝试过的查询:
问题1
我用limit划分了我的查询。这很慢,而且需要一周的时间来比较来自mobile_结果的9000条记录
update member_all,mobile_results
set member_all.phoneMobileNetwork=mobile_results.phoneMobileNetwork
where member_all.phoneMobile in
(SELECT phoneMobile FROM mobile_results limit 1,10);
问题2
对于大量的记录,同样的情况也不好
请帮助我如何一次有效地更新我的member_all表中的记录
非常感谢您在这方面的帮助。您能试试这个吗。我想使用Exist会更快
update member_all
set phoneMobileNetwork=
(select phoneMobileNetwork from mobile_results where
member_all.phoneMobile=mobile_results.phoneMobile)
WHERE EXISTS
(
select 1 from mobile_results where
member_all.phoneMobile=mobile_results.phoneMobile);
您可以尝试在更新时联接表。不存在,不存在。像这样:
update member_all AS ma
JOIN mobile_results ms on ma.phoneMobile=ms.phoneMobile
SET member_all.phoneMobileNetwork=mobile_results.phoneMobileNetwork
参考:
哇,空间利用率低。我会缩小你的varchar的大小…但与你的问题无关,抱歉。我被卡住和我的wamp/Heidi sql崩溃到底意味着什么?您收到了什么错误?@MartinK.my HeidiSQL/phpmyadmin停止响应。@user3489398:供进一步参考。请确保设置问题的格式,以便帮助您的人了解您在问什么您在寻找特定于MySQL或Oracle的答案吗?您似乎指的是MySQL,但您有一个“Oracle”标签。答案可能会大不相同。