如何提高mysql大批量数据更新(update)的效率?

本人所写的sql语句如下:

 UPDATE result,tmp
SET 
        result.forward_count=ROUND(tmp.fca_s),
        result.comment_count=ROUND(tmp.cca_s),
        result.like_count=ROUND(tmp.lca_s)
WHERE result.uid=tmp.uid;

两个表的数据都达到了一百万条,该语句执行起来非常慢,故请问各位,如何提高update效率。

2个回答

从语句上面似乎没有什么优化的余地 这个可能涉及到大量的锁争用 所以慢 这个查询列上面 建了索引 可以查起来快一点 再一个用innodb引擎

diyangxia
xun-ming 确实是没有索引才导致那么慢的
一年多之前 回复
ZhouSanduo18
ZhouSanduo18 兄弟,我创建个索引之后,速度提升了数百倍。谢谢你的建议。
大约 4 年之前 回复
ZhouSanduo18
ZhouSanduo18 这个我试试。
大约 4 年之前 回复

先用explain分析一下时间花费在什么地方。

ZhouSanduo18
ZhouSanduo18 在使用explain的时候,以上语句是有错误的,但是却可以正常运行,并得出正确结果。1064号错误。
大约 4 年之前 回复
ZhouSanduo18
ZhouSanduo18 说起explain,有一点很奇怪,我用的是navic for mysql、
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
提高数据更新效率(UPDATE/INSERT)
有多种方法可以提高更新的效率.简单说来:1、暂停索引,更新后恢复.避免在更新的过程中涉及到索引的重建.2、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表空间.3、创建一临时的大的表空间用来应对这些更新动作.=========================================================================不同看法如果UPDAT...
如何提高update的效率
我在更新的时候使用了如下语句,需要更新的数据(t1表)大约在30万左右,用于查询的表t2数据量在4万左右,这条语句执行起来相当的慢,请问有没有什么好方法可以提高执行的效率呢?rnrnupdate t1 set area=(rn select area from t2rn where substr(t1.number,1,3)=t2.numberrn)rnwhere exists (rn select area from t2rn where substr(t1.number,1,3)=t2.numberrn)
mysql大批量数据更新
批量更新操作常用的方式如下: 1.replace into 本质是先delete重复数据,然后再insert数据,非空字段会设置成默认值,极其危险慎用,可能清空大量数据 replace into tst (id,attr) values (1,'2'),(2,'3'),...(x,'y'); 2.insert into 只更新主键id记录的需要更新的字段,其他字段不清除。如果主键id不...
如何提高insert和update的效率
总感觉这两个语句效率很低rn插入或更新上万条记录时,时间就难以忍受rn有办法提高效率吗?rn我用begintrans没有效果
大批量数据更新
那位大侠给个大批量数据更新的解决方案。(数据估计有100万左右,20-30列数据)
大批量UPdate如何优化
每秒至少几十条,并且有一定的重复,1分钟内的Update语句有30%是重复的。rn问题:rn怎么样能优化Update? 减少次数?内存中合并?应用程序池一崩溃岂不是直接丢失?rn用类似memcached的东西无法保证多机写入时数据精准。
如何提高windows下的mysql的效率
我的php+mysql在windows下跑得很累,mysql的cpu基本维持在20%左右,每隔几秒肯定会跑到50%以上一次,有的时候还更高,我的服务器的内存倒空余很多。有没有配置一下mysql,尽量让其用更多的内存,尽量减少cpu专有率的?rnrn因为现在没有条件把web服务和数据库服务器分开,所以只能在现有条件下尽量的优化了。rnrn多谢大家指教。
如何提高mysql update性能
如何提高这条语句的性能rn[code=sql]UPDATE FactLogin_201305 a,rn Leads_2012 brnSET a.theCount = b.factCount,rn a.theRoi = b.roi > 0rnWHERErn a.allotStep = b.allotSteprnAND a.salesType = b.salesTypernAND a.cityOrder = b.cityOrderrnAND a.salary = b.salaryrnAND a.gender = b.genderrnAND a.education = b.educationrnAND a.ageStep = b.ageSteprnAND a.gzt10 = b.gzt10;[/code]
请教提高大批量数据的三维建模效率的问题?
请教各位高手有没有在三维建模的时候,通过精简一部分点,从而达到加速图像显示的成熟算法。因为图像的数据量特别大,而且是基于点绘制的建模,要一个一个的画点然后显示点,效率自然非常低。请各位高手给点建议。另外请问一下,通常用于三维建模的开源库除了opengl和vtk之外还有其他的吗?
Java怎么提高导出大批量数据的效率
Java怎么提高导出大批量数据到Excel的效率
mysql update效率问题
请教经常开发的大哥一下,问下以下两种情况,哪个效率高啊:rnrn方法一:rnupdate table1 set aaa='wsad' where id=1234rnupdate table2 set bbb='asdf' where id=1234rnrn方法二:rnupdate table1 a,table2 b set a.aaa='wsad',b.bbb='asdf' where id=1234rnrn类似的情况,大虾们比较推荐用哪一种啊?项目数据量比较大也不是很大,可从各种方面讲述,谢谢各位了。
怎样提高mysql的效率?
偶的多线程应用程序中对mysql的操作只有两种:rn读取单条纪录(select....limit...)以及操作后更新该纪录(update....)rn线程访问数据库的时候都作了同步rn表中记录在20万左右rnrn当程序和mysql数据库在同一台机器上(P4 2.8G + 256M)运行时rnCPU占用率达到80%-100%rn而如果表中记录只有1w条rnCPU占用率只有60%左右rn将程序和mysql数据库分别放在两台机器上跑(配置同上)rn发现装有数据库的机器CPU占用率还是比较高rn应该是数据库访问的原因导致前面说到的问题rnrn这样的情况有没有办法优化降低CPU占用率,rn在只作软件的调整的情况下?rn大虾指点一下吧,rn谢谢~!!!rn//bowrn
提高MySql批量更新的效率
提高MySql批量更新的效率本人近期在mysql中进行表数据的批量更新时,遇到了一个比较讨厌的问题——数据更新的速度太慢。如何提高数据更新的速率?
如何提升数据更新效率?
使用postgresql,其中有两张表的数据量达到数十万条,在对全表执行update时,效率极低,有没有什么高效的办法达到相同的目的呢?rnrn我们只需要将表中的一个字段更新为一个值。
大批量的数据更新优化问题
50W数据量的批量更新字段的效率问题,请有这方面经验给点建议及实例,谢谢!
一个大批量数据更新的问题
mysql一个表user,里面一个id主键,一个name是unique。rn数据量为6000W,里面有3000W的数据name是带前缀标记 *** 的。rn现在我想把所有前缀***都给去掉,但是去掉之后会重名的数据不处理。rn想求一个最优的解决方案,谢谢。rnrn比如rn1rn我可以create table temp as select name from userrn然后再update user u set u.name = substring(u.name, 4) where u.name like 'm*m%'rnand not exists (select id from temp t where t.name = substring(u.name, 4))rn问题是一条语句更新这么多数据,靠谱不靠谱。rnrn2.rn写程序,一次处理update 1W条数据,update之前把将会产生重复的id给剔除,循环6000次rn
数据更新效率
最近写了一个数据自动更新vs程序,从Access到sqlserver 感觉更新速度很慢。求助更新效率更高的方法?
MySQL如何大批量更新?
场景:MySQL,MyISAM表类型,没有事务rn表结构: a1,a2字段为联合主键,a3为要修改的字段rnrn先在内存里收集一小时,再更新到数据库存(只更新数据,不能新增数据)rn数据量大概2W条记录rn如何把内存只的2W条记录快速的更新数据库存的记录?rn我现在使用拼接SQL的方法,把100条语句拼成一条再提交rn比如rnupdate t set a3='a1' where a1=1 and a2=2;update t set a3='a2' where a1=2 and a2=2;update t set a3='a3' where a1=3 and a2=3;rn但还是有点慢啊rnrn网上还有介绍说使用replace into
【求助】如何提高mysql的导入效率……
我们的数据库是要每天备份的,所谓备份就是mysqldump导出一份sql文件rn但是现在数据库比较大rn导出的sql文件也有1.7Grn所以我在本地还原数据库的时候特别的慢rn要导入几乎七八个小时rn可能表中要建的索引也比较慢rnrn请问有没有什么办法加快导入的速度
如何提高mysql 排序+分组的效率问题
select * from (rn select rn f.device_id,rn f.point_id,rn f.type rn from h_device_pointvalue frn ORDER BY time desc) f1rn GROUP BY f1.point_idrn 这个sql的功能是 找到一个设备上所有所有寄存器上的最新的状态rn表结构如下rnid device_id point_id type timern1 1 1 2 2016-01-29 12:12:12rn2 1 1 3 2016-01-29 12:12:13rn3 1 2 1 2016-01-28 00:00:00rn4 2 1 1 2016-01-29 00:01:01 rn5 2 2 2 2016-01-29 11:01:21rn6 2 2 3 2016-02-02 00:00:00
如何提高Mysql 批量插入和更新 数据库的效率了?
如题:如何提高Mysql 批量插入和更新 数据库的效率了?rn我现在达到了这种程度:rnrn30个字段,一秒钟 insert 5500条记录,1秒钟更新2400条 算快么?rn也就是10w条记录:rn 插入: 18s左右rn 更新: 38s左右rnrn还能快么?求指教rn
mysql如何提高数据库的排序效率?
我有一条查询语句,如果加上排序就比不加排序慢了100倍。结果集也就是3000条左右,取其中的20条。rn排序的列已经加上了索引,不知还能不能优化一下?rnselect distinct tab_1.id,tab_1.price from tab_1,tab_2 where tab_1.id=tab_2.id and tab_2.condition='a' order by tab_1.price limit 20;rn表结构如下rntab_1:rnid price ........rn1 1.05 ........rn2 0.07 ........rn3 1.00 ........rnrntab_2rnid conditionrn1 arn1 brn1 crn2 brn2 frn... ...rn
mysql update set 大批量带条件更新数据
我在接触到一个业务,是每15s更新 39718条数据,并且每一条数据都是来自很多不相同表,然后我用业务代码来做,执行时间在半个多小时,这远远超出了15s,于是用sql批量更新来处理了业务。sql只用了0.516s。 先准备两张表A,B。如下: A: B: 根据A表的t_name字段关联B表查询出t_name的个数。 SELECT a1.t_name, CO...
mysql提高导入文件效率
mysql source导入sql文件速度太慢?更改配置就可以了
如何提高循环效率
for循环的变种:某些编程环境下,为了增强for循环的灵活性,使用逗号运算符来允许更多的变量来控制循环。 例:for(x=0,y=0;x+y<10;x++,y++)等。逗号运算符是从左向右运算的,返回的是最后一个表达式的值。 do{}while()循环,循环体至少被执行一次。 怎样提高循环的效率: 1、在多重循环中,如果有可能,将循环次数最多的循环...
如何提高学习效率
学习了一门网上课程,阿何老师讲的《60天引爆你的学习力》,感觉有些方法还不错!做了个思维导图,希望可以提高我的学习效率。
如何提高group_concat的效率
百万行数据,只有三个字段 要进行去重操作 所以我sql是这样的rncreate table temptable select row1,group_concat(row2 separator ',' ) as row2,group_concat(row3 separator ',' ) as row3rnfrom table1 group by row1;rndrop table table1;rnrename table temptable to table1;rn100w数据时 单独执行的时候需要200秒rn300w数据时需要900秒rn当三个这种sql同时执行时需要时间高达2-3000秒rnrn在执行过程中 mysql cpu、内存占用皆不高rnrn如何提高去重合并的效率?rn如何提高去重合并的效率?rn如何提高去重合并的效率?
如何提高查询的效率?
不考虑数据库管理系统的设置,如何提高查询的效率?rn另外,有没有关于SQL比较好的书?rn各位大侠,小弟初来乍到的,给的分不够,多多包涵
如何提高WEB服务的效率??
我在想,WEB服务在效率上肯定有问题,那如果才能提高它的效率呢?比如说用户1要查看一万条数据中的1000条,用户2也要查看一万条数据中的1000条数据,用户3也要查看....我不知道他们想看的是具体的哪些数据,我应该如何做才能提高效率呢?大家指点一下,谢谢!
如何提高统计效率?
有一表pay(time_pay,quantity,cost,dep_id,user_id...),数据三百余万条,已建立两索引(time_pay)、(dep_id,user_id),现按dep_id,user_id统计某天的信息,采用下面两种方法:rn1.(在存储过程中使用游标统计)rn...rnDECLARE c_pay CURSOR FORrnSELECT SUM(quantity) AS quantity,SUM(cost) AS costrn FROM payrn WHERE dep_id=@dep_id AND user_id=@user_idrn AND YEAR(time_pay)=YEAR(@d_today) AND MONTH(time_pay)=MONTH(@d_today) AND DAY(time_pay)=DAY(@d_today)rn GROUP BY dep_id,user_idrnOPEN c_payrnFETCH NEXT FROM c_pay INTO @quantity,@costrnCLOSE c_payrnDEALLOCATE c_payrn2.(直接在查询分析器中执行1中的SELECT语句)rnrn执行效率结果比较:1.耗时约1'20",2.耗时约40"rn问题:为什么使用游标后效率降低如此多(时间多了一倍)?如何提高统计效率?
如何提高数据检索效率?
我现在有个ACCESS数据库,里面有4W多条数据,现在我检索一条数据,要200毫秒左右,请问有没有什么方法提高检索效率 rn我现在已作了以下优化处理:rn1 创建了索引rn2 查询SQL语句,使用的=,不使用模糊rn
如何提高视图的效率
在做一系统中,用到若干视图。1.2.3.4.5,视图1由五六张表生成,视图2由1通过某种过滤组合得到,同理,3由2来,4由3来,5由4来,这样,当视图1中的记录为一千条以下时,读5还没问题,当1中记录为1万条时,速度就非常慢了。但我系统正常使用时1中的数据可能达到几十万条。读5的速度就奇慢了,大家对视图效率有过研究吗?rn不用视图的话,用什么替代呢?存储过程?系统数据时常变化,我该怎么办?
如何提高编译的效率?
我记得以前(很久以前)VC可以对单个文件编译,或是只对修改过的文件编译,这样可以提高工作效率,但是我在VS。NET中怎么也没有找到这样的方法?rn请指教,谢谢!
如何提高单元测试效率
对于程序员来说,尤其是做业务代码比较多程序员,往往出现这样的情况:需求开发周期为5个工作日,开发仅占2天,但测试和联调竟然需要3天。为什么会出现这样的情况呢?我总结有以下几点:1、开发业务代码往往不会有什么技术难度,就是业务逻辑复杂些罢了,而程序员对业务理解并不总是完全到位。2、单测和联调也需要协调各方面的环境,往往也需要从头开始造数据。    例如:如果一个大流程有十个步骤,    1)要开发和...
如何提高数据库操作的效率?
结构类似的数百个数据库,都会频繁访问到。那末是多库少记录操作效率高,还是从新组织一个库对很多记录查询,修改操作效率高?有多大差别?请指教。
如何提高复制文件效率
100M的小文件复制了半小时~:(rn请问如何才能提高复制小文件的效率
如何提高刷新效率
我现在做的一个小游戏的刷新速度很慢。请问如何提高效率rnrn1.我的程序是基于win32的。rn2.绘图采用gdi双缓冲的方式,rn3.OnPaint里用了贴图的方式rnrn贴出部分代码rn[code=C/C++]rnvoid PicDlg::RandDrawPicture(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)rnrn WCHAR strFileName[128];rn swprintf(strFileName, _T("%sPicture\\pic%d.bmp"), g_strAppPath, m_nRandIndex);rnrn HBITMAP hBitmap = (HBITMAP)LoadImage(g_hInstance, strFileName, IMAGE_BITMAP, rn 0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);rnrn BITMAP object;rn GetObject(hBitmap, sizeof(BITMAP), &object);rn int nPicWidth = object.bmWidth;rn int nPicHeitht = object.bmHeight;rnrn HDC hBackDC = NULL;rn hBackDC = CreateCompatibleDC(NULL);rn SelectObject(hBackDC, m_hBitmap);rn DeleteObject(hBitmap);rnrn RECT rect;rn GetClientRect(hWnd, &rect);rnrnrn StretchBlt(m_hMemDC, // 拷贝到内存DC中rn 0, 0, rn rect.right - rect.left, rect.bottom - rect.top, rn hBackDC, rn 0, 0, rn nPicWidth, nPicHeitht, rn SRCCOPY);rnrnrn[/code]rn[code=C/C++]rnvoid PicDlg::OnPaint(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)rnrn PAINTSTRUCT paint; rn HDC hDC = ::BeginPaint(hWndDlg, &paint); rnrn RECT rcClient;rn ::GetClientRect(hWndDlg, &rcClient);rnrn RandDrawPicture(hWndDlg, uMsg, wParam, lParam);rn ::BitBlt(hDC,rn 0, 0, rn rcClient.right, rcClient.bottom, rn m_hMemDC,rn 0, 0, rn SRCCOPY);rn ::EndPaint(hWndDlg, &paint);rnrnrn[/code]rnrnrnrn////////////////////////////////////////////////////////////////////rn这是其中一个对话框的刷新rn有很多这样的对话框拼出整个界面。rnrn现在修改一下数据,我就刷新下界面,要等个几百毫秒,界面才刷新过来,有点迟钝。rnrn请问怎么优化,速度慢在哪了?(配置高的机器还好,差一点的就特别慢)rnrn谢谢了!!!!rnrnrn
如何提高网站的效率
部署了一个人家开发的网站(C#.net,部署在win8 pro)。rn功能都是正确的,就是效率奇低。rn人家开发的程序可以肯定没有问题,肯定是我哪里没弄好。rnrn大家能否提示一下,什么地方我可以调一调?rnrn谢谢
如何提高canvas效率?
俺继承stringgrid 加了一些代码 ,发现在DrawCell(ACol, ARow: Integer; ARect: TRect;AState: TGridDrawState)中写太复杂代码的话,重画超级慢,我把代码放到paint里面速度是提高了不少,但是效果还是不理想,请问delphi中有什么好的方法可以提高canvas的作图效率吗?有时候我还发现第一次并不虽然执行了paint但是画面没有出来,需要2次执行才可以,请知道的告诉下重画中代码的执行顺序,谢谢!分不够你就说^_^
如何提高会议的效率?
我感觉我们公司开会效率很低。像讨论一些方案,往往一下就在讨论2页纸的东西。rn各个领导的看法也不太相同,改了一遍又一遍,都不能达到他们满意。rn最后东西也改的面目全非,反正我感觉问题越说越乱了,不知道领导会感觉如何。rn大家有什么高招呀。如何提高会议的效率。
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件