将大量流数据保存到数据库的推荐方法是什么?

发布于 2024-10-12 09:00:12 字数 360 浏览 0 评论 0原文

我有一个包含多个子成员的类,即,

class structA
{
   double a;
   double b;
   structB c;
}
class structB
{
   double d;
   double e;
}

为了存储大量数据(例如流式股票数据),将该类持久保存到数据库的最佳方法是什么?我想要一些简单的东西,最好是某种形式的 LINQ,这样我就可以在以后查询数据。

有太多的方法,我只是不知道该转向哪个方向,即我是否使用 LINQ to SQL? LINQ 到实体? LINW 转 CSV? LINQ 到对象?微软的SQL? MySQL? PostgreSQL?无限数据库? MongoDB?

I have a class with several submembers, i.e.

class structA
{
   double a;
   double b;
   structB c;
}
class structB
{
   double d;
   double e;
}

What is the best way to persist this class to a database, in order to store large amounts of data, e.g. streaming stock data? I want something simple, preferably with some form of LINQ so I can query the data at a later date.

There's so many methods that I'm just not sure which way to turn, i.e. Do I LINQ to SQL? LINQ to Entities? LINW to CSV? LINQ to objects? Microsoft SQL? MySQL? PostgreSQL? InfiniDB? MongoDB?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小女人ら 2024-10-19 09:00:12

如果您问我如何快速将数据写入数据库,我会说两点。

首先假设您已经选择了底层数据库和编程模型(假设您选择了 .NET 和 MS-SQL - 既然您提到了 LINQ,我假设您处于 .NET 世界中,所以这是最自然的选择),然后只需使用可用的最低级别写入技术。在 .NET 情况下,直接使用 ADO.NET API,而不是通过 LINQ。

第二点,如果您需要真正快速的写入,您可以将数据缓冲在内存中,然后构建批量写入语句,并再次通过 ADO.NET API 执行此语句。

我认为您选择哪种数据库和编程模型并不重要,我不知道有任何特别适合快速数据库插入的模型,我希望它更依赖于您实现解决方案的方式。

为了解决您的其他问题......仅仅因为您不使用 LINQ 插入数据并不意味着您不能使用它来读取数据,并且显然使用 LINQ 并不是使您能够在某个位置读取数据的先决条件稍后的日期。

最后 - 如果您确实想使用 LINQ,那么请尝试使用 LINQ - 它可能足够快。这具体取决于您的数据流的速度 - 只有测试才能知道。

If you are asking how can I write data quickly to a database I would make 2 points.

Firstly assuming you have chosen your underlying database and programming model (let's say you choose .NET and MS-SQL - since you mention LINQ I assume you're in a .NET world and so this is the most natural choice) then just use the lowest level write technique available. In the .NET case use the ADO.NET API directly instead of going via LINQ.

Second point, if you need really fast writes you can buffer the data in memory and then construct a batch write statement, and again execute this via the ADO.NET API.

I don't think it matters particularly what database and programming model you go for, I'm not aware of any that is particularly geared to speedy database inserts, I would expect it's far more dependant on the way you implement the solution.

To address your other concern.. just because you don't use LINQ to insert data it doesn't mean you can't use it to read data, and obviously using LINQ is not a prerequisite to enable you to read the data at a later date.

Finally - if you really want to use LINQ then try using LINQ - it might be that it's fast enough. It depends on exactly how fast your stream of data is - only testing can tell.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文