preg_replace_callback を使うのは非効率であることが分かりました
preg_match_all + str_replace に変更します
str_replace は 1 回の実行に 0.5 秒以上かかります
それは間違いありません。通常のマッチングには時間がかかるので、コードを投稿して見てください。
preg_match_all("/("|'|=)/column.php?cid=(d+)&s(d+)=(d+)&page=(d+)/i", $result, $m);
| を使用しているためではありませんか?