假设我有一个(MySQL)数据库。我想通过一个应用程序自动更新这个数据库:
1. Import from DB
2. Calculate updated data
3. Export back updated data
时机很重要,我不想在计算时导入,实际上我不想要任何查询;我想整体导入(a)表,然后计算。所以,我的问题是,如果一行用一个类的实例表示,那么我将这些对象放入哪个容器中?
一个载体?一套?有序与无序有什么关系?根据大O时间,只使用对我来说最好的东西?有什么特殊的陷阱落入这里吗?这种情况与“内存中出生”的数据没有什么不同,因此除了大小开销之外唯一需要考虑的事情是“我希望查找或插入更快”吗?
可能最好的路线是使用一些ORM,但是让我说我不想。
我看过一些应用使用boost::unordered_set
,我想知道,如果有特殊原因可以使用它......
我使用类似jdbc的接口作为连接器(libmysqlcpp
)。
答案 0 :(得分:1)
我不认为你必须使用的容器可以用很少的信息猜测。它主要取决于您将运行的数据大小,类型和算法。
但我对这种设计的主要担心是它会迅速阻塞你的网络或你的基础和数据库。如果你有一张大桌子,你会:
为什么不考虑直接在mysql服务器上工作?您可以创建可以处理直接数据的user defined function,保存网络,甚至可以利用构建mysql来处理大量数据的事实,即内存容器无法处理的数量。 / p>