我在Mysql 5.1服务器中使用SQL函数,花了大约1秒来处理70k行。现在他们将服务器升级到5.5,同样的功能非常慢。
我尝试过使用/不使用DETERMINISTIC或READS SQL DATA的不同数据类型,并且改进(如果有的话)非常小。
我知道在处理大量行时,SQL函数不是最佳选择,但它在之前的安装中表现良好。大多数情况下,我想知道他们是否在5.5中引入了一个错误,并且是否继续使用SQL函数是个好主意......
有人注意到这样的事情吗?
这是功能:
CREATE FUNCTION `split_str`(x VARCHAR(255), delim VARCHAR(12), pos INT) RETURNS varchar(50) CHARSET latin1 DETERMINISTIC
BEGIN
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
END
答案 0 :(得分:0)
您是否检查过该服务器上是否有最新的mysql 5.5.x?
我相信我之前已经看过这个错误,但我不幸的是没有mysql错误号。我认为我记得的问题是在最新的小版本升级到5.5.x系列时修复的。