mysqL update 太慢,求解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqL update 太慢,求解决方法相关的知识,希望对你有一定的参考价值。

update Content,ecs_goods set ecs_goods.chinaid=content.pageurl WHERE content.ISBN=ecs_goods.isbn

两个表的引擎是INDB的。两个ISBN都加有索引。数据都是50万
现在这个命令24个小时都没搞定。肯定能优化。ORZ

更改mysql配置如下:
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:50M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 10M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
innodb_support_xa=off

用mysql-connector-odbc-5[1].1.5-win32.msi这个驱动程序
哥们,你建主键了没?

排除了以上问题,还慢,就看看你的连接了,如果是自己写的,那么建议你找个别人写好的连接类试试。有时候代码没问题,db没问题,那么只有时连接的问题了!!
希望对你有用。
参考技术A 每次都要全表更新吗?可以加一些条件来限制
试试这个...
update ecs_goods
set ecs_goods.chinaid = (select content.pageur
from Content
where content.ISBN = ecs_goods.isbn);
参考技术B update ecs_goods
set chinaid=( select top 1 pageurl from content where content.isbn = ecs_goods.isbn)
因为,我不知道你是否一一对应,所以我加了top1,防止一对多的错误。
参考技术C update ecs_goods set ecs_goods.chinaid=content.pageurl from Content,ecs_goods WHERE content.ISBN=ecs_goods.isbn 参考技术D 这两个表 在ISBN 建立主外键关系,速度会快起来的。 第5个回答  2011-09-23 干掉索引,再update。update完啦再把索引建回来

以上是关于mysqL update 太慢,求解决方法的主要内容,如果未能解决你的问题,请参考以下文章

mysql导入太慢解决方法

python连接MYSQL数据库,调用update语句后无法更新数据,求大神解决

linux yum update 出现如下错误 求解决方法

mysql update ...select的使用 & update 遇到 disable safe 的解决方法

mysql insert或者 update语句过长解决方法

求高手优化MySQL数据库,数据库反应太慢。