是否可以拥有脱机数据库

时间:2013-01-22 18:54:24

标签: php javascript sql database

简短故事:我下载了一个java / flash上​​传器,其中一个文件是.db。经过一番研究,我发现这是一个数据库。这提示了这个问题。我可以创建一个数据库(.db)文件并将其保存在我的根目录下的文件夹中,而不必依赖于另一个服务器和SQL查询吗?从而理论上通过仅访问本地文件来加速我的网站。

问题:我做了很多研究,没有找到答案。主要是我想因为我以前从未处理过这个,所以我不知道在哪里看。

问题:有没有人听说过这样的事情?如果是这样,您能否将我推荐给一个教程网站,或者提供一个简短的定义/解释/示例,说明这将如何工作以及文件之间将使用何种类型的通信语言? SQL?别的什么?我只是不知道!

谢谢大家的帮助。

6 个答案:

答案 0 :(得分:1)

SQLlite可以提供无需使用服务器即可运行的数据库。它提供了一个标准的SQL接口,就像你使用reguar sql server(MySQL等)一样。它可能不会更快,因为它将依赖于比标准数据库服务器更多的磁盘I / O.

答案 1 :(得分:1)

[好的部分] 从理论上讲,是的,你可以做到。一个例子是sqlite database。此数据库是您存储在任何位置的单个文件。如果您使用PHP进行编码,则需要在PHP上安装相应的扩展程序才能访问/查询此数据库。

[不好的部分] 只有在您处理少量数据且查询相对简单时才有意义。 Sqlite数据库很慢,只支持一组有限的SQL操作。他们也不支持许多标准数据类型,并且缺少许多您可能依赖的内置函数。如果您希望在独立应用程序(例如,具有本地数据的移动应用程序)中使用简单的数据库支持,则Sqlite数据库非常好,但不太适合存储大量事务数据。

[判决] 如果您正在寻求加速您的Web应用程序,从适当的数据库切换到sqlite可能只会阻碍您的应用程序,而不是帮助它。

答案 2 :(得分:0)

SQlite无服务器。这是有据可查的。 PHP也有一个extension来处理它。但如果你真的想加快速度,你应该看看memcachedredisMongoDB等等。

答案 3 :(得分:0)

我真正想到的是平面文件数据库。

http://www.databasedev.co.uk/flatfile-vs-rdbms.html

答案 4 :(得分:0)

几乎所有您可以命名的数据库解决方案都依赖于文件作为存储机制,因此仅将数据存储在文件中并不会为您的应用程序带来任何固有的性能加值。像SQLite这样的无服务器数据库确实存在,但选择它们的原因很少与性能有关,而是与可移植性有关。

您可以运行MySQL或其他数据库的本地实例,以消除线上传输成本。如果配置得当,它们在大多数情况下都会胜过像SQLite这样的东西,因为除了磁盘存储之外,MySQL还依赖于内存存储。

因为听起来你对这种东西很陌生,所以我会谨慎地试图担心这些过早的性能优化。也许从与Web服务器相同的服务器上的传统关系数据库(如MySQL)开始。

一旦达到流量足够的程度,您需要将数据库分离到不同的服务器上(将更多资源分配给数据库或Web应用程序,或者允许多个负载 - 平衡的Web应用程序服务器与单个后端数据库通信)然后您可以开始担心这些性能调整。

答案 5 :(得分:0)

您所谈论的似乎只是在客户端所在的同一台计算机上运行服务器。那当然是可能的。

优点是它仍然可以使用SQL,甚至是网络协议,但可以自包含在同一台计算机上。稍后切换到生产环境将是最小的配置更改。

它实际上不会使用网络,而是会在内存中进行所有网络调用。这将运行得非常快,并且是一个良好的开发环境。