我有两个表:
1) 是所有parameter-id的列表以及parameter-id属于哪一组参数的信息
2) 是包含一些参数 ID 以及一些附加数据(例如时间戳和值)的数据。
我正在设计一个类似数据仓库的系统。但是,我没有存储预先计算的值的汇总表(这在我的情况下实际上没有意义),而是尝试减少不同报告脚本必须查看才能获得结果的数据量。
我想将 table2 中的每一行转移到每组参数的表中,以便最终我有“汇总表”,每组参数都有一个。哪个参数属于哪个集合保存在table1中。
有没有比循环 table1 中的每个条目更快的方法,获取 @param_id = ...
和 @tablename = ...
并执行 INSERT INTO @tablename SELECT * FROM table2 其中parameter_id = @param_id
?我读到“基于集合的方法”比过程方法更快(更好),但我不太明白这在我的情况下是如何工作的。
感谢任何帮助!
最佳答案
别这么做。您的第三个表对于原来的两个表来说是多余的。每当您需要两个表中的片段时,请在两个表之间执行JOIN
。
SELECT t1.foo, t2.bar
FROM t1
JOIN t2 ON t1.x = t2.x
WHERE ...;
关于MySQL:根据条件拆分表的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210313/