【发布时间】:2020-01-17 04:38:22
【问题描述】:
假设您正在开发一个多人游戏,其中数据存储在 MySQL 数据库中。例如物品、属性、buff、npc、任务等的名称和描述文本。
那个数据:
- 不会经常改变
- 经常被请求
- 在服务器端是必需的
- 并且无法在本地缓存(JSON、Javascript)
为了解决这个问题,我编写了一个基于文件的缓存系统,它在服务器上创建 .php 文件并按照预定义复制 整个 mysql-tables php 变量放入其中。
像这样:
$item_names = Array(0 => "name", 1 => "name");
$item_descriptions = Array(0 => "text", 1 => "text");
该文件包含大量数据,最终大小约为 500 KB,然后在每个用户请求时加载。
这是避免不必要查询的好尝试吗?考虑到 查询缓存在 MySQL 8.0 中已被弃用?还是只使用单个查询获取所需的数据更好,即使每个请求最终有数百个数据?
【问题讨论】:
-
只需创建表 InnoDB,并将 InnoDB buffer pool size 增加到大约。 70% 的服务器 RAM。您将获得与缓存几乎相同的效果,因为经常使用的页面将在 RAM(缓冲池)中
-
使用 InnoDB。时期。句号。继续解决其他问题。
标签: php mysql performance caching