【发布时间】:2013-10-30 16:27:41
【问题描述】:
我有一个运行大约 24 小时的 sql 查询。 我想知道有没有办法优化它。
查询是:
update r, t set r.a1 = t.a2, r.b1 = t.b1 where r.c = t.c and r.d1 = t.d2 and r.e1 = t.e2 and r.f1 = t.f2;
表 r 有 ~2,000,000 行并定义为:
Field Type Collation Null Key Default Extra
----- -------- --------- ---- --- ------ --------------
id int(11) (NULL) NO PRI (NULL) auto_increment
a1 blob (NULL) YES (NULL)
e1 tinyblob (NULL) YES MUL (NULL)
f1 int(11) (NULL) YES MUL (NULL)
c int(11) (NULL) YES MUL (NULL)
b1 int(11) (NULL) YES MUL (NULL)
d1 int(11) (NULL) YES MUL (NULL)
表 t 有 ~1,200,000 行并定义为:
Field Type Collation Null Key Default Extra
----- -------- --------- ---- ------ ------- --------------
c int(11) (NULL) NO MUL 0
d2 int(11) (NULL) NO MUL 0
e2 tinyblob (NULL) YES MUL (NULL)
f2 int(2) (NULL) NO MUL (NULL)
a2 blob (NULL) YES (NULL)
b1 int(11) (NULL) YES 0
id int(11) (NULL) NO PRI (NULL) auto_increment
我想知道是否有办法优化查询?
谢谢!
【问题讨论】:
-
I have an sql query that run about 24 hours: 运行需要24小时吗? :-/ -
是的:/这就是为什么我正在寻找一种优化它的方法。
-
如果需要这么长时间,显然有些事情是非常错误的。你能从查询中加入解释语句吗?
-
你能否提供我想查看索引的表中的实际创建语句。
标签: mysql optimization