Mysql 什么是用于很少更改数据的高效数据库管理系统?
我正在寻找一个高效的关系数据库管理系统,该系统针对很少更改的数据进行了优化(很少到每次更改都需要重新创建整个数据库的程度是可以接受的)。例如,我不需要事务、用户帐户、触发器或任何其他奇特的功能;但我确实需要外键、连接和存储大量数据的能力(尽管不是很“大数据”) 我所熟悉的两个DBMS是MySQL和SQLite:Mysql 什么是用于很少更改数据的高效数据库管理系统?,mysql,sql,sqlite,immutability,database,Mysql,Sql,Sqlite,Immutability,Database,我正在寻找一个高效的关系数据库管理系统,该系统针对很少更改的数据进行了优化(很少到每次更改都需要重新创建整个数据库的程度是可以接受的)。例如,我不需要事务、用户帐户、触发器或任何其他奇特的功能;但我确实需要外键、连接和存储大量数据的能力(尽管不是很“大数据”) 我所熟悉的两个DBMS是MySQL和SQLite: MySQL的开销似乎太大了 SQLite似乎无法很好地扩展大量数据 考虑到您只需要很少或根本不需要更新,我想至少有两个功能您可以利用 有些非标准化 对于更改数据库来说,数据的非规范化可
- MySQL的开销似乎太大了
- SQLite似乎无法很好地扩展大量数据
就RDBMS而言,我认为这并不重要(至少从优化只读数据库的角度来看——当然还有其他重要因素,如许可成本)。如果您需要扩展到一台服务器之外,任何传统的关系数据库(MySQL、SQL Server)都将迫使您进行水平分区
大数据解决方案(Hadoop、MongoDB)可能值得考虑,因为它们可以促进多服务器扩展。这就是它们的设计目的,它们的一些缺点(特别是缺乏加入能力)将在您的情况下得到缓解。我认为没有任何完整的RDBMS专门用于只读。也许更重要的是问如何设计一个只读优化的模式和索引。我不确定问题在哪里。。simple不使用不需要的功能,创建正确的规范化/索引模式,即(在给定的上下文中,这是无法回答的)。。然后信任查询计划器和缓存。当然,也许SQL/Relabor数据库是不合适的。考虑一下。基本上有查询缓存的任何东西,即:MySQL。@ MaTt为什么不使用特征“创建(相关)开销”?该问题在编写时似乎不是问题(例如,实际问题未明确定义,也未测试任何问题)。此外,想象中的“间接费用”也没有严格的保证,“有些非标准化”。过多的去规范化实际上是有害的——即使不需要“额外的连接”。我总是从“完全”规范化开始;但与索引建议一样,这个问题过于模糊/不完整,无法提供更多模糊的“建议”。一旦选择了一个数据库,就要根据预期的使用情况对其进行调优。@Matt是的,我意识到——出于完整性考虑,我仍然认为值得一提。那么你确定你将被安全地限制在一台服务器上?即使您最终只跨两台服务器,它们也会带来一些好处。