高容量、高 qps 的最佳数据库和文件系统

ano*_*non 4 database-recommendation

我正在考虑为一个非常大的非营利情况设置数据库,这也将受益于高速更新和搜索。

每个交易记录将相对较小(基本客户信息加上 10-12 个额外字段),但必须通过不同的更新、报告和屏幕进行数千次的更新/修改。(但除了恢复之外,我不需要每次更新的记录。)

MYSQL 最适合这个吗?哪种文件系统最有效?

谢谢。

G

Ker*_*tts 6

几乎任何数据库服务器都可以满足您的需求,无论是 MySQL、Microsoft SQL Server、Oracle 等。根据以下标准,所有 rdbms 的性能差异很大

  • 磁盘的 I/O 性能(通过高吞吐量连接获得良好、快速的 RAID 磁盘)
  • 性能和 RAM 量(好的和快速的 RAM,以及很多
  • 文件系统开销(使用为数据库设计的现代 fs。Ext4 工作正常,但有 OCFS2,它是 Oracle 的文件系统,为数据库构建,甚至 Oracle 的 RAW 存储在操作系统意义上甚至没有文件系统.. . 数据库完全管理磁盘。)
  • 正确索引的表结构(快速访问数据取决于您的数据被正确索引,其中“正确”意味着最有效地满足您的所有需求。)
  • 适当优化的查询...通常与正确的索引密切相关;数据库可以尝试为您的查询找出最佳优化,但它只能使用正确的索引和统计信息来实现。更重要的是,微调您的查询,以使数据库不具备做了很大的优化自身,你会更快和更快乐。
  • 网络的 I/O 性能 - 如果您传入或传出大量数据,网络性能将很重要(否则数据库在通过线路发送数据时必须等待)。

一些真正无关紧要的事情(就性能而言):

  • 你的操作系统。Windows、Mac OSX、Linux 和其他任何现代的东西都可以作为操作系统层。无论如何,您的大部分工作都是在数据库中完成的,偶尔需要在操作系统中完成。选择一个可以简化您的生活(而不是使其复杂化)的操作系统,但现代数据库在大多数操作系统上都具有高性能。
  • 您的数据库引擎。是的,MySQL 与 Oracle 和 MS SQL 等之间存在重大差异。这真的很重要吗?如果您必须拥有某个特定功能,那么无论如何都可以使用它,但最终,只要配备正确配置的硬件和表就足够了。

真的,选择一个数据库、一个操作系统、一个文件系统,然后构建你的应用程序。有了良好的硬件和良好的表设计(带有索引和优化),事情应该会顺利进行。

说了这么多,这就是我要选择的(只是因为我最熟悉这种类型的配置):

  • RHEL / OEL / Ubuntu (操作系统)
  • Oracle 标准一(或标准或 EE,取决于您的需要)(DB)
  • Ext4 日志文件系统 (FS)
  • 2 个 2xCore 处理器 (>2.5GHz)
  • 8 GiB 内存(大约 1066 或更快的 MHz)
  • 1 TiB 硬盘(SATA,>=7200rpms)
  • 至少千兆以太网

根据需要换出操作系统、文件系统和数据库。您的机器应该会尖叫,并且对于大量数据库来说都很好,而且可能有点矫枉过正。不过,最好的事情是,您可以随时添加内存和磁盘空间,并在需要时升级处理器。如有必要,请移至新框,或添加框(如果您的数据库支持)。(更好的是:将您的环境作为虚拟机/集群运行。然后移动到另一台物理机就是小菜一碟。)