我想知道您认为哪种 DBMS(可能是 SQL)性能相当好,并且从 CPU/RAM 的角度来看不会给服务器带来太大压力。我习惯使用 MySQL,但我发现(也许是当时 MySQL 的一个错误 - 大约 4 年前)当对众多表之一进行一个简单的查询时(SELECT * FROM ... my_table WHERE='' 查询和 WHERE 条件代表了表中大约 0.1* 个条目),1GB(或者是 10GB?哦,好吧......)的数据库会导致系统消耗大量 RAM(大约 2GB RAM)。
我不需要高性能的 DBMS,它可以处理 1TB 的数据,并且每秒可以执行超过 100,000 次查询,且不会占用超过 10GB 的 RAM。我计划将其用作 PHP 的“统计信息收集器”数据库(我的 LAN 中的统计信息,例如温度、负载、网络活动等)。查询将使用 PDO(或您可能推荐的框架中提供的其他扩展)进行。我仍然希望拥有一个对系统影响较小的大型数据库,并且查询不会非常频繁(比如说每 10 秒进行 1 次查询,作为频率顺序)。
由于这些是统计数据,因此也可以在 sqlite 中完成,但我对这种方法有点不情愿,因为我不确定它的性能是否与 MySQL 一样好,而不会消耗太多资源。PostGreSQL 是一个值得选择的替代方案吗?RAM 使用率应尽可能低(无论如何 <4GB MAX)。CPU 使用率也是如此(越低越好),但如果有 >= 4 个内核 @ >2.8GHz,我并没有真正看到问题。
你有什么特别的建议吗?这将从头开始编码,与我所说的数据库无关,否则会消耗太多资源。任何帮助都将不胜感激。
答案1
只要您编写了良好的 SQL 代码,并为正在运行的查询定义了适当的索引,MySQL 应该可以满足您的要求。您可以调整内存,但最大的因素是您的 SQL 和基于可用索引的访问计划。
在有人说之前,是的,PostGreSQL 也可以,Oracle、DB2、SQL Server、Sybase、Informix 等也可以。听起来楼主有 MySQL 经验,所以我去了那里。大型供应商的产品也往往会消耗更多内存。