我在MySQL中做了一个非常简单的过程(while循环):
BEGIN
DECLARE start INT;
DECLARE ending INT;
SET start = 1;
SET ending = 4000000;
WHILE (start <= ending) DO
SET start = start + 1;
END WHILE;
END
双核机器需要约26秒(每个核心100%),我不明白为什么。
你可以给我一个答案吗?答案 0 :(得分:3)
是的,与其他编程语言(如C#或Java)相比,存储过程非常慢。计算明智的是。 SQL Server中的相同代码也会很慢。可能比MySQL快,但你还是要等几秒钟,直到它完全执行。你可以通过编程语言做得更好,这种语言可以在一秒钟内完成这样的任务。
所以换句话说:
缓慢的存储过程性能是在数据库中实现计算成本高昂的业务逻辑通常不明智的原因之一。由于网络不是以前的瓶颈,通常最好将数据提取到应用程序层并使用您选择的编程语言进行处理,即使这需要额外的几次往返数据库。