我有两个表,每个表有一亿行,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
答案 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引用。