Jul*_*Lam 12 mysql sql database sql-server optimization
在以下查询中:
SELECT column_a, column_b FROM table_a WHERE
column_b IN (SELECT b_id FROM table_b)
Run Code Online (Sandbox Code Playgroud)
子查询是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)
Run Code Online (Sandbox Code Playgroud)
查看EXPLAIN EXTENDED用于充分说明子查询处理的效果.
例如:
EXPLAIN EXTENDED
SELECT column_a, column_b FROM table_a WHERE
column_b IN (SELECT b_id FROM table_b)
Run Code Online (Sandbox Code Playgroud)
如果它们不能产生您希望的缓存结果,您可能有兴趣将它们存储在内存(memcache,redis),文件(使用PHP文件库)或单独的SQL缓存本身中.