我有一个在MySQL数据库上运行的应用程序,该应用程序在数据库上有点资源密集。
我的客户想要将Qlikview连接到此数据库进行报告。我想知道是否有人可以指向我的白皮书或URL关于最好的方法,而不会在我的数据库上造成锁等。
我搜索谷歌无济于事。
Qlikview是具有预加载数据的内存工具,因此您的客户端必须仅在定期重新加载期间获取数据,而不是始终。最好的方法是您的客户每晚设置一次重新加载并使其增量。如果您的表每晚仅加载新记录,则只会记录大于上次加载的主键的记录。
如果您的表已经修改了记录,则需要在mysql last_modified_time字段中添加,也可以在该字段上设置索引。
last_modified_time TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如果您的字段被删除,最好在mysql中将其设置为deleted = 1,否则您的客户端将需要重新加载该表中的所有内容以了解哪些行已被删除。
另外,保存资源的客户端应该在没有JOINS的情况下每个表只加载非常简单的数据:
SELECT [fields] FROM TABLE WHERE `id` > $(vLastId);
Qlikview非常适合数据建模/连接,因此您的客户可以在QLikview中创建所有数据模型。
报告确实会导致繁忙的事务数据库出现问题。
您可能想要检查的一种方法是拥有数据库的副本(从属)。 MySQL非常支持这一点,您的副本数据可以根据需要更新。然后,您可以将任何报告系统附加到副本,以运行不会影响主数据库的大量报告。这也为您提供备份(第二个副本),备份还可用于创建数据的脱机备份,而不会影响主数据库。
关于MySQL副本的设置有很多信息,所以这不是太难。
我希望有所帮助。