MySQL:根据条件拆分表的最快方法

标签 mysql insert cursor set-based

我有两个表:

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/

相关文章:

MySQL - 数据输入

android - 如何将数组中的值填充到 SQLite 数据库中

mysql - 如何在phpmyadmin中批量更新记录

mysql - 需要在MySQL中编写多个SELECT语句

mysql - Django session 用户

java - 使用PreparedStatement时,Oracle在关闭结果集和语句后不会删除游标

javascript - jquery.hotkeys.js 用 .bind 替换输入字段

mysql - SQL SUM 连接问题

c# - 如何将一列插入到两个现有列之间的数据集中?

Python:在SQL数据库中插入元组列表并添加自动递增的id字段