12

次のクエリでは:

SELECT column_a, column_b FROM table_a WHERE
    column_b IN (SELECT b_id FROM table_b)

サブクエリSELECT b_id FROM table_bはSQLパーサーによってキャッシュされますか、それとも事前にクエリを実行し、変数として保存して(たとえば、PHPで)、それらの値をCSV文字列として渡す方が速いでしょうか。

例えば

SELECT column_a, column_b FROM table_a WHERE
    column_b IN (1,3,4,6,8,10,16,18)
4

1 に答える 1

6

EXPLAIN EXTENDEDサブクエリで処理される効果を完全に説明するためにを使用することを検討してください。

例えば:

EXPLAIN EXTENDED
SELECT column_a, column_b FROM table_a WHERE
    column_b IN (SELECT b_id FROM table_b)

希望するキャッシュ結果が得られない場合は、メモリ(memcacheredis)、ファイル(PHPファイルライブラリを使用)、または別のSQLキャッシュ自体に保存することをお勧めします。

于 2012-08-08T16:00:58.817 に答える