Mysql 是否适合使用存储过程动态创建图表?

Mysql 是否适合使用存储过程动态创建图表?,mysql,ruby-on-rails,performance,stored-procedures,Mysql,Ruby On Rails,Performance,Stored Procedures,我在rails中工作,希望将动态图表添加到我的应用程序中。我的想法是,如果数据是平面文件,可以在MySQL数据库中创建一个存储过程,根据用户希望看到的参数查询数据,即按用户数和他们在一年中每个月的活动分组(y轴)(x轴)。然后将从rails调用存储过程,并返回结果以构建到图表中 但是,它已经注意到存储过程很慢,因此如果简单地呈现图表需要很长的加载时间,则可能会破坏用户体验 我想做的是,这是前进的最好方式吗 存储过程很慢 必须注意的是,存储过程方法不会花费时间来回遍历SQL server到rail

我在rails中工作,希望将动态图表添加到我的应用程序中。我的想法是,如果数据是平面文件,可以在MySQL数据库中创建一个存储过程,根据用户希望看到的参数查询数据,即按用户数和他们在一年中每个月的活动分组(y轴)(x轴)。然后将从rails调用存储过程,并返回结果以构建到图表中

但是,它已经注意到存储过程很慢,因此如果简单地呈现图表需要很长的加载时间,则可能会破坏用户体验

我想做的是,这是前进的最好方式吗

存储过程很慢

必须注意的是,存储过程方法不会花费时间来回遍历SQL server到
rails
的数据,反之亦然,因此实际上,存储过程的执行速度应该比传统的
ActiveRecord
查询快得多

如果加载时间过长,可能会破坏用户体验

根据加载时间和用户查询,有多种方法可以改善用户体验:

  • 您可以使用一些placeholding文本(如“生成数据,请稍等片刻”)呈现页面,并使用AJAX或服务器端事件等技术使分析查询的结果稍晚显示。可以使用或在后台处理报告生成。还可以显示进度条,让用户知道他的请求没有被放弃

  • 您可以利用缓存常用查询的数据的优势,使每个查询每隔一段时间执行一次。可以根据图表的相关性选择不同的缓存周期(例如,每小时或每天更新一次缓存的统计数据)。请看手册页

  • 您还可以参与一些数据挖掘研究,例如多维方法。使用OLAP多维数据集来表示数据的方法将稍难遵循,但可以通过多维数据分析的可能性改善用户体验