首页 \ 问答 \ 数据库挑战:如何有效地更新100万条记录?(Database challenge: How to Update 1 million records efficiently?)

数据库挑战:如何有效地更新100万条记录?(Database challenge: How to Update 1 million records efficiently?)

我正在努力更新我的海量数据库,但由于这个大的更新/比较,我的wamp / Heidisql一直在崩溃。

我有两个数据库表:主表“member_all”(包含300万条记录)和子表:“mobile_results”(包含9,000条记录)。 表的数据库结构如下所示:

主表(“member_all”)

id int(11),
name varchar(255),
phoneWork varchar(255),
phoneMobile  varchar(255),
phoneMobileNetwork varchar(255)

表中的数据如下所示:

id name      phoneWork      phoneMobile   phoneMobileNetwork 
1  bill      061090999990   0789867676    Null
3  billsaasa 06109094399990 076689867676  Null

子表:(“mobile_results”)

id int(11) autoincrement,
phoneMobile varchar(255),
phoneMobileNetwork  varchar(255)

mobile_results中的数据如下所示:

id     phoneMobile  phoneMobileNetwork
8789   0789867676   Orange     
238789 076689867676 O2

9,000手机号码的所有移动网络数据都存储在“mobile_results”中,但是当我尝试比较这两个表时,我卡住了,我的wamp / Heidi sql崩溃了吗?

我的问题是:

如何有效地使用“mobile_results”中的“phoneMobileNetwork”值填充“member_all”?

以下是我尝试的查询:

查询1

我使用限制来划分我的查询。这很慢,并且还需要1周的时间来比较来自mobile_results的9,000条记录。

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

update  member_all,mobile_results 
set member_all.phoneMobileNetwork=mobile_results.phoneMobileNetwork  
where member_all.phoneMobile in  
(SELECT phoneMobile FROM mobile_results where id <10);

同样不适合大量记录。

请帮助我如何有效地一次更新记录我的“member_all”表。

在这方面,我将不胜感激。


I am struggling to update my massive database but my wamp/Heidisql keeps crashing due to this large update/comparisons.

I have two database tables: main table "member_all" (contains 3 million records) and child table:"mobile_results" (contains 9,000 records). The database structure of tables look like this:

Main Table ("member_all")

id int(11),
name varchar(255),
phoneWork varchar(255),
phoneMobile  varchar(255),
phoneMobileNetwork varchar(255)

Data in table looks like this:

id name      phoneWork      phoneMobile   phoneMobileNetwork 
1  bill      061090999990   0789867676    Null
3  billsaasa 06109094399990 076689867676  Null

Child Table : ("mobile_results")

id int(11) autoincrement,
phoneMobile varchar(255),
phoneMobileNetwork  varchar(255)

Data in mobile_results looks like this:

id     phoneMobile  phoneMobileNetwork
8789   0789867676   Orange     
238789 076689867676 O2

All my mobile network data for 9,000 mobile number is stored in "mobile_results" but when i try to compare both these table ,i get stuck and my wamp/Heidi sql crashes?

My question is :

How can i populate "member_all" with "phoneMobileNetwork" values from "mobile_results" efficiently?

Here are the queries i have tried:

Query 1

i divided my query using limit .This is slow and would also take 1 week to compare 9,000 records from mobile_results.

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);

Query 2

update  member_all,mobile_results 
set member_all.phoneMobileNetwork=mobile_results.phoneMobileNetwork  
where member_all.phoneMobile in  
(SELECT phoneMobile FROM mobile_results where id <10);

Same not good for large number of records.

PLEASE help me how can i update records my "member_all" table efficiently in one go.

I would appreciate you help in this regard.


原文:
更新时间:2022-01-29 21:01

最满意答案

[object Object]是默认情况下呈现JavaScript对象的方式。 您的console.log(presenData)将类似地输出[object Object]

鉴于您将presenData定义为JSON对象,我猜您想在POST完整地传递它。

改变这个:

return $http.post('/api/presentaciones/' + presenData);

对此:

return $http.post('/api/presentaciones/', presenData);

注意逗号。 这将传递presenData JSON对象作为请求的主体。

我还将logging语句更改为console.log(JSON.stringify(presenData)) ,它将JSON表示呈现给控制台。


[object Object] is how a JavaScript object is rendered by default. Your console.log(presenData) will similarly output [object Object].

Given that you define presenData as a JSON object, I'm guessing you want to pass that in its entirety in your POST.

Change this:

return $http.post('/api/presentaciones/' + presenData);

to this:

return $http.post('/api/presentaciones/', presenData);

Note the comma. This will pass the presenData JSON object as the body of the request.

I would also change the logging statement to be console.log(JSON.stringify(presenData)), which will render the JSON representation to the console.

相关问答

更多

相关文章

更多

最新问答

更多
  • 如何在Laravel 5.2中使用paginate与关系?(How to use paginate with relationships in Laravel 5.2?)
  • linux的常用命令干什么用的
  • 由于有四个新控制器,Auth刀片是否有任何变化?(Are there any changes in Auth blades due to four new controllers?)
  • 如何交换返回集中的行?(How to swap rows in a return set?)
  • 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
  • 使用Boost.Spirit Qi和Lex时的空白队长(Whitespace skipper when using Boost.Spirit Qi and Lex)
  • Java中的不可变类(Immutable class in Java)
  • WordPress发布查询(WordPress post query)
  • 如何在关系数据库中存储与IPv6兼容的地址(How to store IPv6-compatible address in a relational database)
  • 是否可以检查对象值的条件并返回密钥?(Is it possible to check the condition of a value of an object and JUST return the key?)
  • GEP分段错误LLVM C ++ API(GEP segmentation fault LLVM C++ API)
  • 绑定属性设置器未被调用(Bound Property Setter not getting Called)
  • linux ubuntu14.04版没有那个文件或目录
  • 如何使用JSF EL表达式在param中迭代变量(How to iterate over variable in param using JSF EL expression)
  • 是否有可能在WPF中的一个单独的进程中隔离一些控件?(Is it possible to isolate some controls in a separate process in WPF?)
  • 使用Python 2.7的MSI安装的默认安装目录是什么?(What is the default installation directory with an MSI install of Python 2.7?)
  • 寻求多次出现的表达式(Seeking for more than one occurrence of an expression)
  • ckeditor config.protectedSource不适用于editor.insertHtml上的html元素属性(ckeditor config.protectedSource dont work for html element attributes on editor.insertHtml)
  • linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录
  • Actionscript:检查字符串是否包含域或子域(Actionscript: check if string contains domain or subdomain)
  • 将CouchDB与AJAX一起使用是否安全?(Is it safe to use CouchDB with AJAX?)
  • 懒惰地初始化AutoMapper(Lazily initializing AutoMapper)
  • 使用hasclass为多个div与一个按钮问题(using hasclass for multiple divs with one button Problems)
  • Windows Phone 7:检查资源是否存在(Windows Phone 7: Check If Resource Exists)
  • 无法在新线程中从FREContext调用getActivity()?(Can't call getActivity() from FREContext in a new thread?)
  • 在Alpine上升级到postgres96(/ usr / bin / pg_dump:没有这样的文件或目录)(Upgrade to postgres96 on Alpine (/usr/bin/pg_dump: No such file or directory))
  • 如何按部门显示报告(How to display a report by Department wise)
  • Facebook墙贴在需要访问令牌密钥后无法正常工作(Facebook wall post not working after access token key required)
  • Javascript - 如何在不擦除输入的情况下更改标签的innerText(Javascript - how to change innerText of label while not wiping out the input)
  • WooCommerce / WordPress - 不显示具有特定标题的产品(WooCommerce/WordPress - Products with specific titles are not displayed)