MySQL で (私にとって) 奇妙な動作を見つけました。簡単なクエリがあります:
SELECT CONVERT( `text`.`old_text`
USING utf8 ) AS stext
FROM `text`
WHERE `text`.`old_id` IN
(
SELECT `revision`.`rev_text_id`
FROM `revision`
WHERE `revision`.`rev_id`
IN
(
SELECT `page_latest`
FROM `page`
WHERE `page_id` = 108
)
)
実行すると、phpmyadmin は 77.0446 秒の実行時間を示します。
しかし、私は交換します
WHERE `text`.`old_id` IN
に
WHERE `text`.`old_id` =
実行時間は約 0.001 秒に短縮されます。このクエリの結果
SELECT `revision`.`rev_text_id`
FROM `revision`
WHERE `revision`.`rev_id`
IN
(
SELECT `page_latest`
FROM `page`
WHERE `page_id` = 108
)
は
+------------+
|rev_text_id |
+------------+
|6506 |
+------------+
誰かがこの動作を説明できますか?