0

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

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

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

感谢大家的帮助。

4

6 回答 6

2

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

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

[结论] 如果您希望加快 Web 应用程序的速度,从适当的数据库切换到 sqlite 可能只会阻碍您的应用程序,而不是帮助它。

于 2013-01-22T19:01:58.743 回答
1

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

于 2013-01-22T18:57:36.893 回答
0

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

于 2013-01-22T18:58:50.720 回答
0

我真正认为您要问的是平面文件数据库。

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

于 2013-01-22T18:59:15.210 回答
0

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

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

因为听起来你对这类东西很陌生,所以我会提醒你不要担心这些过早的性能优化。也许从与您的 Web 服务器在同一台服务器上的传统关系数据库(如 MySQL)开始。

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

于 2013-01-22T19:04:11.820 回答
0

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

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

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

于 2013-01-22T19:18:52.210 回答