2011-12-09 2 views
1

MySQL의 5.1 서버에서 SQL 함수를 사용하고 있는데,이 함수는 70k 행을 처리하는 데 약 1 초가 걸렸습니다. 이제 그들은 서버를 5.5로 업그레이드했으며 동일한 기능이 매우 느립니다.SQL 함수가 5.5에서 매우 느림

나는 DETERMINISTIC 또는 READS SQL DATA의 유무에 관계없이 다른 데이터 유형을 시도했으며, 개선 사항이있는 경우 개선 사항이 매우 작습니다.

SQL 기능이 많은 행을 처리 할 때 가장 좋은 옵션이 아니라는 것을 알고 있지만 이전 설치에서 잘 수행하고있었습니다. 주로 5.5에서 버그를 도입했는지 그리고 SQL 함수를 계속 사용하는 것이 좋은지 알고 싶습니다 ...

누구나 이와 비슷한 것을 발견 했습니까? 해당 서버에 절대적으로 최신의 MySQL 5.5.x가있는 경우

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

당신이 확인 했 :

함수인가?

나는이 버그가 전에 논의 된 것을 보았지만, 나는 unfortunatly mysql 버그 번호를 사용할 수 없다고 생각한다. 나는 내가 기억하는 이슈가 5.5.x 시리즈의 최신 부 버전 업그레이드에서 수정되었다고 생각한다.

+0

이전 : mysql.com 사이트의 5.5.11 ia64 바이너리. new는 ia64의 소스 패키지에서 컴파일 된 5.5.19입니다. 일반적인 성능이 더 좋으며, SQL 함수 – golimar

+0

에 문제가없는 것은 아마 5.5.9 win32에서 발생합니다 – golimar