我有这个用例:我需要在同一个表上多次执行相同的“逻辑”查询,固定次数(相同的语义,只改变与“WHERE”语句进行比较的值)。
查询布局:
SELECT [(SUM(col_name),col_name,...)]
FROM table_name
WHERE expr AND expr...
我假装要提高这项任务的性能。
通过阅读我在这里找到的关于这个问题的文章以及一些额外的研究,我可以指出以下相关事实:
- 不使用内部临时表(在查询中使用 EXPLAIN)
- 不使用查询缓存(不同的查询)
如果我在内存中创建一个临时表(RAM,ENGINE=MEMORY)来镜像相关表,然后在这个内存表上执行所有查询,我可以提高性能吗?:
CREATE TABLE tmp_table_name ENGINE=MEMORY SELECT * FROM table_name;
对 tmp_table_name 执行查询
DROP TABLE tmp_table_name;
谢谢。