Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何规避大型嵌入式db4o数据库的大文件_C#_Database_Db4o - Fatal编程技术网

C# 如何规避大型嵌入式db4o数据库的大文件

C# 如何规避大型嵌入式db4o数据库的大文件,c#,database,db4o,C#,Database,Db4o,我正在考虑使用嵌入式db4o数据库来存储模拟工具的计算结果。模拟结果可能会非常大(一次运行可达一些GB,因此数据库的实际大小可能在10 GB到100 GB之间) 据我所知,db4o将整个数据库存储在一个文件中。虽然我知道db4o支持数据库,但我仍然担心我可能会遇到不喜欢大文件的文件系统的问题(我正在开发的应用程序将运行在各种各样的体系结构上,因此我无法真正预测哪些文件系统将就位……)。那么,有没有什么最佳实践可以帮助我在保留嵌入式数据库优点的同时避免使用大型文件呢 编辑:我刚刚发现一篇博文通常在

我正在考虑使用嵌入式db4o数据库来存储模拟工具的计算结果。模拟结果可能会非常大(一次运行可达一些GB,因此数据库的实际大小可能在10 GB到100 GB之间)

据我所知,db4o将整个数据库存储在一个文件中。虽然我知道db4o支持数据库,但我仍然担心我可能会遇到不喜欢大文件的文件系统的问题(我正在开发的应用程序将运行在各种各样的体系结构上,因此我无法真正预测哪些文件系统将就位……)。那么,有没有什么最佳实践可以帮助我在保留嵌入式数据库优点的同时避免使用大型文件呢


编辑:我刚刚发现一篇博文通常在db4o中处理(实际上)大量数据。但是,它没有详细介绍如何在不强调文件系统的情况下实现这一点。

在不创建太大文件的情况下处理大量数据的方法是使用多个容器。您应该将数据模型切割成多个容器(aka文件)

每个文件都将包含模型的某些部分。然后通过查询好的容器,您应该能够检索您的对象;连接(如果需要)必须用手完成


若你们的模型中的类太少,并没有必要削减它,那个么我不确定db4o是你们需要的方式。也许一个简单的、具有非常微小序列化的文件应该最适合您的需要。

在不创建太大文件的情况下处理大量数据的方法是使用多个容器。您应该将数据模型切割成多个容器(aka文件)

每个文件都将包含模型的某些部分。然后通过查询好的容器,您应该能够检索您的对象;连接(如果需要)必须用手完成


若你们的模型中的类太少,并没有必要削减它,那个么我不确定db4o是你们需要的方式。也许一个简单的文件和非常小的序列化应该最适合您的需要。

您有什么理由不想依赖传统的数据库吗?是的,最重要的原因是我运行软件的(HPC)系统的管理员不允许我在他们的机器上运行数据库服务器。这些机器上的计算通常只能作为批处理作业(通过作业调度器)启动,这会使实际数据库服务器的使用更加复杂…好的。我只是对它感到好奇。我在这方面没有太多的经验(当对文件的依赖变得不可能时,我转向(常规)DBs),因此我无法提供帮助。有什么理由不想依赖常规数据库吗?是的,最重要的原因是(HPC)的管理员我将在其上运行软件的系统不允许我在其计算机上运行数据库服务器。这些机器上的计算通常只能作为批处理作业(通过作业调度器)启动,这会使实际数据库服务器的使用更加复杂…好的。我只是对它感到好奇。我在这方面没有太多经验(当对文件的依赖变得不可能时,我转向(传统的)DBs),因此无法提供帮助。好吧,这就是我所怀疑的,但我希望有一种更优雅的方法。。。不过,谢谢你的回答:)好吧,这是我所怀疑的,但我希望有一种更优雅的方法。。。不过,谢谢你的回答:)