从多个表中读取数据的最佳方法

时间:2016-08-10 07:17:49

标签: c++ mysql multithreading design-patterns

我必须创建一个Application来同时从200多个表中读取一些实时数据并处理这些数据。我想讨论什么是以最佳速度解决这个问题的最佳方法,因为每个表我们每分钟都能获得20多条记录。到目前为止,我可以想到以下解决方案: -

1)我可以独立处理大约20个奇数符号的多个线程。

2)我可以将两个线程用于数据读取而另一个用于数据处理,但读取器线程将花费更多时间,因为它必须按顺序读取所有表。

我的数据库是MySQL,我现在不打算转向nosql数据库。我正在使用C ++来解决这个问题。我觉得如果不是200多个表我可以在一个表中获得实时数据,那么我的第二种方法将变得更加恰当和快速。

1 个答案:

答案 0 :(得分:1)

是否需要使用MySQL,否则你可能会从任何nosql“数据库”中获得速度提升。此外,从数据库中检索数据始终是一个瓶颈,通常情况下,当您需要加载大量数据时,尽可能多地加载到RAM中并从那里读取数据,因为速度要快得多。

您可以创建一个查询,该查询只会从某个时间戳(与您上次查询的执行时间戳相同)中检索最新数据,然后将其加载到内存中执行需要速度的所有操作,并进行清理不再需要的旧条目。