1

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

更新 table_r r, table_w w 设置 r.key1=0 其中 r.str_key=w.str_key
  1. 查询需要 1 亿 / 60 > 100 万秒才能完成,这是否正确?
  2. 如何优化查询以快速完成?
4

2 回答 2

0

您必须在表中索引 WHERE 子句字段,并且您应该对表进行分区,如果操作正确,则所有查询的执行速度都会非常快。

文档可能会对您有所帮助。

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

于 2013-05-19T04:33:52.003 回答
0

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

于 2013-05-19T02:30:43.550 回答