所以基本上一个用户可以请求多个 Project
记录。组成业务对象Project
的字段来自不同的地方,有些只是来自MySql中的project
表,有些存储在我可以的其他表中加入
形成记录集。
但是有些值是计算出来的(并且每次请求数据时都会计算——没有缓存)。这些可能需要一些时间来计算,所以我有后台进程来计算这些并将它们存储在 results
表中。
完成此操作后,我想获取所有数据并放入包含正确列的表中(不同的项目
根据用户特定设置以及他们在其中请求的字段具有不同的列特定请求),因此我可以使用 GROUP BY、LIMIT、ORDER BY、SUM 等。就好像数据存储为平面表一样 - 我将为列提供正确的数据类型,以便日期排序有效。
我创建的任何表格都将仅用于该笔交易 - 假设它们是 CSV 导出数据。如果他们再次导出 CSV,我将再次执行整个过程并创建一个新表。
每个表的行数将在 1 到 100,000 之间。
TLDR;
我可以在 MySql 中快速创建和销毁表而不会出现任何奇怪的问题吗? NoSql 数据库更适合这个吗?有没有其他技术更适合这个?
最佳答案
看来您可以使用伪临时表。 CREATE TABLE temp.csv_data_1234(...),
其中 1234
是用户 ID,或者你有什么。完成此表后,您可以将其删除。 Percona Toolkit 中有 pt-find
实用程序,可以轻松查找和删除此类表格。
关于mysql - 我需要 GROUP BY、LIMIT、ORDER BY、SUM 等。在动态创建的一组数据上,每次都会有不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45230285/