mms*_*swe 6 mysql sql database
有没有办法弄清楚SQL查询何时会在它启动后结束?换句话说,有没有办法计算查询执行前查询需要多长时间?(粗略估计没问题!)
ALTER IGNORE TABLE mytbl ADD UNIQUE (c);
Run Code Online (Sandbox Code Playgroud)
我在innodb表上运行了这个查询,该表有3500万条记录.c是varchar(255)
此命令已运行10个小时,但仍在运行.如果我接近结束,我不想取消.
我感谢任何帮助.谢谢!
小智 6
摘自ServerFault解决方案:
解决方案是测量查询在事实表的表扫描中扫描行的速度。这由 Handler_read_rnd_next 状态变量显示。这是观看它的简单方法(innotop 是另一种方便的方法):
mysqladmin extended -r -i 10 | grep Handler_read_rnd_next
-- ignore the first line of output...
| Handler_read_rnd_next | 429224 |
Run Code Online (Sandbox Code Playgroud)
所以服务器每秒读取大约 43K 行,表中有 1.5 亿行。稍加数学运算,您就可以完成 3488 秒,或者不到一个小时。事实上,查询在大约 55 分钟内完成。