我目前正在开发一个必须存在于内存可用性很低的虚拟机上的网站(目前我被告知需要512mb)。不幸的是,至少在不久的将来,数据库和Web应用程序必须是同一台服务器。
现在我已经在这里阅读了一些问题并试图进行自己的研究,但有很多选择可供选择。基本上,我可以安装什么足够轻的数据库服务器? SQL或NoSQL并不重要;它不会是数据库密集型的,但我希望不会受到我现在选择的任何限制。意思是,如果可能的话,实现多服务器扩展的路径会很好,但显然不是现阶段的要求。
我目前的想法是MongoDB或MySQL,但我不确定这些是否是最好的选择。
我的web应用程序在nginx上使用PHP运行,我认为这是目前最好的选择,所以我主要担心的是数据库方面。
答案 0 :(得分:13)
如果您需要最轻的 -weight数据库,我会说sqlite 3。它是专为此任务设计的目的,is small and fast,根据我的经验,它是可靠且易于使用的。
我自己不使用php,但似乎有support here。
sqlite支持几乎“标准”的sql,除了它不强制执行类型 - 您可以将列定义为文本,但如果您愿意,可以存储和检索整数值。在实践中,这并不是什么大问题,只要你不使用这个“功能”,你可以在以后切换到更大的数据库而不会有任何麻烦。
但是,在实践中,我会从mysql开始,因为它可能已经安装并且可用。如果它给你内存使用问题,切换到sqlite。但是对于一个简单的,没有多余的数据库,你也可以从mysql开始。
答案 1 :(得分:3)
在关系数据库或面向文档的数据库之间进行选择时,最好关注特定应用程序的数据存储需求。如果一个更适合关系数据库的应用程序是在面向文档的数据库(如MongoDB)之上编写的,那么效率会降低并消耗更多资源。
答案 2 :(得分:1)
你看到了OrientDB吗?
OrientDB具有文档数据库的灵活性和强大的功能 图形数据库来管理关系。它可以在无模式中工作 模式,模式已满或两者兼而有之。支持高级功能,如 ACID事务,快速索引,本机和SQL查询。它进口 并以JSON格式导出文档。