我正在用php开发的网站每查看一页就会有很多MySQL数据库请求.虽然很多都是索引设计正确的小请求,但我不知道是否值得为这些页面开发一个缓存脚本.

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

  2. 其中一个页面判断数据库中的文件名,然后判断服务器是否存在,然后决定显示什么.我想这会从缓存页面视图中受益吗?

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

推荐答案

如果你正在进行大量的读访问(查找文件名等),你可能会从memcached中受益.你可以将"最热的"(最近创建、最近使用的,取决于你的应用)数据存储在内存中,然后只在缓存未命中时查询数据库(可能还有文件).内存访问比数据库或文件快得多.

如果您需要写繁重的访问,那么数据库是最佳 Select .如果您使用的是MySQL,请使用InnoDB表或其他支持行级锁定的引擎.这将避免别人在写作时阻塞(或者更糟糕的是,不管怎样,写作).

但归根结底,这取决于数据.

Database相关问答推荐

包含接受Cassandra中多个数据的语句

无法初始化数据库,出现错误无法连接到`host=db user=database=`:拨号错误(dial tcp xxxx: connect: connection refused)

如何将表字段的默认值设置为 0.00?

Symfony2:spl_object_hash() expects parameter 1 to be object, string given in Doctrine

502 是数据库错误的适当状态代码吗?

在 Oracle 中查找数据库的大小

PostgreSQL 将列从整数转换为文本

Oracle 数据库统计信息应该多久运行一次?

如何将 MySQL Workbench 连接到 Amazon RDS?

用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询

避免从网站数据库中data scraping数据抓取?

单父实体的核心数据性能

如何在 PDO 中获取数据库名称?

如何从 Django 中的 sql 模式生成数据模型?

寻找示例数据库设计的好方法

A QuerySet 按聚合字段值

如果表不存在,如何使用 Derby Db 创建表

游戏中使用什么样的数据库?

多币种 - 存储什么以及何时转换?

如何在 SQLServer 数据库的两个实例之间复制数据记录