在MySQL中对海量数据集生成报告的最有效方法

在MySQL中对海量数据集生成报告的最有效方法,mysql,optimization,Mysql,Optimization,我需要为我正在开发的应用程序构建一个报告界面,该应用程序要求管理员随着时间的推移可视化收集的大量数据 想想类似于谷歌分析的东西 需要可视化的大多数数据都位于一个基本表中,该表包含一个日期时间、“操作”varchar和其他可过滤数据——目前该表包含150万行,并且每天都在增长 目前,我正在使用按天分组的过滤器进行一个简单的选择,它运行得很好,但我想知道是否有更智能、更有效的方法来提取此类数据 干杯你可以开始做几件事: 确保在所有筛选器上添加索引,以便它们不会执行任何表扫描 使用查询计划分析器进行检

我需要为我正在开发的应用程序构建一个报告界面,该应用程序要求管理员随着时间的推移可视化收集的大量数据

想想类似于谷歌分析的东西

需要可视化的大多数数据都位于一个基本表中,该表包含一个日期时间、“操作”varchar和其他可过滤数据——目前该表包含150万行,并且每天都在增长

目前,我正在使用按天分组的过滤器进行一个简单的选择,它运行得很好,但我想知道是否有更智能、更有效的方法来提取此类数据


干杯

你可以开始做几件事:

确保在所有筛选器上添加索引,以便它们不会执行任何表扫描

使用查询计划分析器进行检查,以确保没有需要优化的位置

由于您的表中有一个日期时间戳,分区在将来肯定会对您有所帮助


祝你好运。

你可以开始做几件事:

确保在所有筛选器上添加索引,以便它们不会执行任何表扫描

使用查询计划分析器进行检查,以确保没有需要优化的位置

由于您的表中有一个日期时间戳,分区在将来肯定会对您有所帮助


祝你好运。

你可以期待一些常见的查询,与可能生成的过滤器的独特组合数量相比,可能是一个很小的数字。您可以使用它将数据压缩到相应的表中,并在夜间运行此收集过程。

您可能会遇到一些常见的查询,与可能生成的唯一过滤器组合的数量相比,这可能是一个很小的数字。您可以使用它将数据压缩到相应的表中,并在夜间运行此收集过程。

1两层-原始数据和汇总数据。对于原始数据,索引可能没有帮助。您正在进行聚合,在大多数情况下需要进行完整的表扫描。如果它没有,重新组织它,它会更快

2找出您的聚合,自动生成它们,并根据聚合数据运行报告。请为这些汇总表编制索引

3避免连接。聚合,具体化分组结果,然后加入聚合结果

4.分区。将数据保留一天或任何有意义的粒度与另一天的数据分开。如果需要的话,制作自动化的表创建脚本——或者根据您的观点制作功能繁重的脚本——数据库为您提供了一种称为分区的方法来以更合理的方式完成这项工作

5了解数据仓库

1两层-原始数据和汇总数据。对于原始数据,索引可能没有帮助。您正在进行聚合,在大多数情况下需要进行完整的表扫描。如果它没有,重新组织它,它会更快

2找出您的聚合,自动生成它们,并根据聚合数据运行报告。请为这些汇总表编制索引

3避免连接。聚合,具体化分组结果,然后加入聚合结果

4.分区。将数据保留一天或任何有意义的粒度与另一天的数据分开。如果需要的话,制作自动化的表创建脚本——或者根据您的观点制作功能繁重的脚本——数据库为您提供了一种称为分区的方法来以更合理的方式完成这项工作

5了解数据仓库

只有150万行?不要担心优化问题。。。你应该很长一段时间都很好。只有150万行?不要担心优化问题。。。你应该很长一段时间都很好。