0

我有大量的 6 次多项式(如x^6 + 2*x^5 + x^4 + x^3 + x^2 + 1)存储在文本文件中以及一些附加信息。总量超过400 000 000. 它们都有整数系数。

我想有效地存储它们,然后在我的商店中快速搜索一些多项式。我不需要多客户端功能。我想存储数据并在同一台机器上使用它。

在我看来,这就像经典的 DB 任务。所以现在我考虑将一些数据库作为引擎。

  1. 在我的情况下,什么数据库是最有效的选择?sqlite是否足够高效?
  2. 如果存储多项式的最有效方法怎么办?带有列的表a0, a1, a2 ... a6, add_info或某些序列化(如字符串序列化"5,3,5,6,1,2,3")或可能是某些 DB 具有数组数据类型的表?我不仅要进行精确匹配搜索,还要进行类似的搜索get all polynomials with a6 = 3get all uniq a5 for polynomials with a6 = 3.
4

1 回答 1

3

对于 4 亿行,您可能希望使用比 SQLite 更强大的数据库。有免费版本的 MySQL、Postgres、SQL Server 和 Oracle(例如)可能会更好。请注意,Stack Overflow 不是推荐特定产品的网站。我只是为了回答您在 SQLite 上的特定问题而提出这个问题。而且,SQLite 可能适用于此目的。

您的基本数据结构将是一个多项式 id 以及 7 列整数,每个系数一个。

根据您的查询示例,您将需要每个系数的单独索引。例如:

create index idx_polynomials on polynomials(a6);

您不想序列化这些值。这将消除将这些数据存储在关系数据库中的大部分实用程序,并阻止使用索引。

于 2014-07-30T12:14:26.717 回答