我打算使用 mysql 来存储我的数据集。我有大约 10^8(亿)条记录:
ID(int)
, x(float)
, y(float)
, z(float)
, property(float)
.
哪种数据库引擎适合这种数据集 InnoDB 或 MyISAM?或者也许是 ndb (我不知道可扩展性或性能)?
我打算用以下问题查询静态数据集:
选择getRectagularRegion或getPointsInSphere;
我打算使用 mysql 来存储我的数据集。我有大约 10^8(亿)条记录:
ID(int)
, x(float)
, y(float)
, z(float)
, property(float)
.
哪种数据库引擎适合这种数据集 InnoDB 或 MyISAM?或者也许是 ndb (我不知道可扩展性或性能)?
我打算用以下问题查询静态数据集:
选择getRectagularRegion或getPointsInSphere;
我假设您正在尝试将点存储在 3d 空间中,然后找到一个区域内的所有点。
与在数据库中构建一个非常好的 3d 空间索引系统相比,如何为具有大量记录的下划线数据库编码要重要得多。如果没有空间索引,您将无法使用希望进行查询。
您还应该考虑将自己的数据存储编写为简单的 3rd quod 树,这可能会根据您的点的聚类方式为您提供良好的索引 - 但使用“off the self”数据库对您来说工作量较小。
因此,我认为您需要研究对数据库中空间索引的支持,而不是询问对大量行的支持。 如今,大多数数据库都需要存储大量行……</p>
您的表似乎很简单,您不需要事务和外键。所以我猜 MyISAM 会比 InnoDB 更适合。但我想 MEMORY 可能是你最快的选择。