Rah*_*eel 2 mysql postgresql database mongodb mariadb
我正在编写代码来存储数据,并希望存储 10 亿到 100 亿条记录,甚至更多。最重要的是速度(接近 10000 - 20000 / 每秒记录)、空间使用和防碰撞。现在我一直在玩 MySQL 的 MyISAM,它的运行速度非常快,并且与我们所需的速度相匹配。MyISAM 也有最佳的空间使用率,MySQL 数据文件夹中的数据库文件几乎等于我插入的数据量,例如,对于 100000 条记录,每条记录 30 个字符,只占用了 3 MB。但唯一的问题是它不是 ACID 并且会在崩溃时导致数据丢失。
所以我想知道任何替代方案(我什至不介意将数据库软件更改为其他任何东西)可以帮助我们存储如此多的数据并快速存储它们。
我已经尝试过 MySQL INNODB,它的插入非常慢。我每秒只能达到 800 - 1000 / 条记录。此外,在 INNODB 中存储数据的空间量非常大。存储相同的 100000 条记录(每条 30 个字符)需要将近 8 MB。
我也尝试过使用 MongoDB 作为替代方案,但它再次需要太多空间来存储相同的数据。
甚至 SQLITE3 DB 写入 100000 条记录也非常慢。我在 for 循环中用 PHP 尝试了这个。它还漏掉了大约 20 条记录,并给出了数据库不可用的错误。
所以我想知道任何可以满足我要求的开源数据库软件。我听说 MariaDBs ARIA 符合 ACID。这是真的吗?或者 PostgreSQL 也是一个很好的快速选择,具有最佳空间利用率。
我对任何快速、利用最佳空间且防 CRASH 的解决方案持开放态度。期待回复。
=== MariaDB Aria 的更新 === 在插入速度和空间方面,它甚至比 InnoDB 还要糟糕。插入相同数据所需的时间是 InnoDB 的 1.5 倍,而 MyISAM 使用的空间是其近 2.5 倍。
这不是任何人都可以在 5 分钟内 100%“完成”的事情,但如果您想始终如一地实现该级别的性能和功能那么我强烈怀疑您将不得不花钱。
如果您有这方面的预算,那么我会考虑结合 Oracle 的“TimesTen”引擎,可能与企业级 SSD 或 PCIe 闪存(例如 FusionIO)结合使用,如果您走得那么远,我建议您使用 Intel 的 Xeon E7-xxxx系列,因为它们具有出色的 RRAS 功能,可以在发生故障时使您的服务器尽可能长时间地保持正常运行。
归档时间: |
|
查看次数: |
15608 次 |
最近记录: |