私はMysql 5.1サーバーでSQL関数を使用していましたが、これは約1秒で70k行を処理しました。今すぐサーバーを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
古いもの:mysql.comサイトの5.5.11 ia64バイナリ。 newはia64のソースパッケージからコンパイルされた5.5.19です。一般的なパフォーマンスが優れており、SQL関数 – golimar
に問題はありません。おそらく同じことが5.5.9 win32で起こります – golimar