【发布时间】:2009-05-29 23:22:50
【问题描述】:
我是数据库/PC应用程序方面的完全新手,请原谅我的无知。
我想实时捕获数据包到数据库,以便多个应用程序能够监控通过来自 PLC 的 udp 数据包返回的物理 I/O 数据,我有几个问题。
从长远来看,它需要跨平台,但目前我在 Windows 中使用 C# 数据包捕获库。关于数据库类型 MySQL 与 SQlite 的任何建议?
每秒约 1500 个 200 字节的数据包,每秒插入 1500 次数据包是否可行?我已经读到 SQlite 在并发性方面存在一些问题,如果我有一个应用程序以 25-50 毫秒的延迟以每秒 10 次查询数据库中的数据包数据 - 这可行吗?
我希望任何时候“只”需要在数据库中存储 20MB 左右的数据。数据库可以强制只在内存中运行吗?写入数据包数据时,能否将数据包(字节数组)写入一个语句而不是迭代插入每个字节/字?我想我可以把它变成一个字符串,但我希望这样几乎不可能以任何速度查询。在我简要查看的任何数据库中,我都没有看到任何提及“字节数组类型”之类的东西。 FWIW 所有数据都将发送到静态 IP 上的专用 NIC。数据包是顺序的(我知道 UDP 不能保证它,但我还没有见过有问题的数据包)如果数据库支持数组类型,我可以轻松地遍历数据。 - 很好,没有随机搜索?
感谢您花时间阅读本文。
鲍勃
【问题讨论】: