加快mysql中的更新连接查询

时间:2013-05-19 01:27:20

标签: mysql optimization

我有两个表,每个表有一亿行,key1和str_key都是非唯一键。 根据show engine innodb状态,以下MYSQL查询执行大约80次读取/秒,尚未更新。没有其他查询正在运行。

 update table_r r, table_w w set r.key1=0 where r.str_key=w.str_key
  1. 查询将花费1亿/ 60英镑是否正确? 100万秒完成?
  2. 如何优化查询以快速完成?

2 个答案:

答案 0 :(得分:0)

每当查询速度很慢时,首先要确保在WHERE子句中提到的所有列上都有索引。

答案 1 :(得分:0)

您必须索引表中的WHERE子句字段,并且您应该分配一亿行,如果执行得当,所有查询的执行速度都会很快。

documentation可能会对您有所帮助。

  

从性能的角度来看,主要的外卖是MySQL 5.1   分区是一个强大的新工具,可以在许多物理中使用   数据库设计可以显着提高性能并简化DBA   管理负担。有关MySQL分区的更多信息,请参阅   可以访问在线参考手册   http://dev.mysql.com/doc/refman/5.1/en/partitioning.html并访问   MySQL论坛,因为有一个专门讨论分区的论坛部分,   可以在http://forums.mysql.com/list.php?106引用。