我正在做一个超过200个表的大项目,我使用MySQL(Percona), Java &水晶报告JRC。我有一些报告非常大&多个表之间有很多连接。在Java客户端中,我通常在框架上显示数据,在某些情况下,我需要打印这些数据,所以我将唯一的ID发送到Crystal Report以查询相同的数据并打印它。
一些报表变得非常慢,然后我想到创建一个只用于打印的表。例子:如果我想打印收据,我有收据在我的框架上查看,所以我在打印表上插入所有需要的数据,然后将唯一id发送到水晶报告并打印它。
此打印表将每48小时释放一次,因此数据将保持较小&使报告打印更快。
注意:原始收据表将包含数百万条记录,并且由于这将是一个要求,因此应永久保存。
,但打印表将仅用于打印。
所以,请帮助我决定这是否是我能做的最好的方法来提高数百万条记录的水晶报告性能。
如果你需要打印的数据已经在你的java应用程序中被查询了,那么让它创建一个只包含数据的临时表,并在Crystal Reports中查询该临时表。例如,
CREATE TEMPORARY TABLE IF NOT EXISTS print_data AS (SELECT * FROM table)
否则,我建议在https://dba.stackexchange.com/中询问这个问题。这是关于数据库设计的更多信息&