文件访问速度与数据库访问速度

2022-08-30 16:42:25

我正在用php开发的网站对每个页面查看的许多MySQL数据库请求。尽管许多是具有正确设计的索引的小请求。我不知道是否值得为这些页面开发缓存脚本。

  1. 文件 I/O 通常比数据库请求快吗?这是否取决于服务器?有没有办法测试每个服务器可以处理多少个?

  2. 其中一个页面检查数据库中的文件名,然后检查服务器以查看它是否存在,然后决定要显示的内容。我认为这会从缓存的页面视图中受益吗?

此外,如果有关于此主题的任何其他信息,您可以将其转发给我,那将不胜感激。


答案 1

如果您正在进行读取繁重的访问(查找文件名等),您可能会从memcached中受益。您可以将“最热”(最近创建,最近使用,具体取决于您的应用程序)数据存储在内存中,然后仅在缓存未命中时查询数据库(以及可能的文件)。内存访问比数据库或文件快得多。

如果您需要写入密集型访问,那么数据库就是要走的路。如果您使用的是MySQL,请使用InnoDB表或其他支持行级锁定的引擎。这将避免人们在其他人写作时被阻止(或者更糟糕的是,无论如何都要写作)。

但最终,这取决于数据。


答案 2

这取决于数据的结构,数量以及更改的频率。

如果您有相对少量的相对静态数据,并且具有相对简单的关系 - 那么平面文件是完成工作的正确工具。

当数据之间的连接更加复杂时,关系数据库就会变得独立。对于基本的“查找表”,它们可能有点过分。

但是,如果数据不断变化,那么仅使用数据库而不是手动处理配置管理可能会更容易 - 对于大量数据,对于平面文件,您还会遇到额外的问题,即如何有效地找到所需的一位。


推荐