如果将这些数据存储在内存中而不是数据库表中,是否会影响性能?


Is it bad for performence if store this data in memory instead of database table?

我想在我的网站上安装一个游戏。互动需要很多工作,主要是将游戏选项移动到我的网站的管理选项控制面板。为了避免交互工作,我正在考虑创建一个类来存储选项,并通过Global调用该类。

Class Game_Vars{
var ...;
... ...;
}
Global $game_options;
if ( !isset( $game_options ) ) $game_options = new Game_vars();

通过这种方式,选项不会存储在数据库中,并且每次游戏脚本运行时都会加载Class.php。有近70个选项,这是否对性能来说太重了?

这取决于数据的static,这告诉您更改数据必须有多容易。如果数据永远不会改变,也不需要接口来改变它,那么使用类并将数据存储在内存中并没有什么问题。否则,可以使用数据库来更好地管理数据(但是使用Singleton或单个静态变量等设计模式从数据库中获取一次数据)。

你不会遇到任何内存/硬件性能/效率问题,当存储一个类的70个数据成员到任何半现代服务器的内存。特别是(正如Pastor Bones所指出的),无论您选择哪个选项(数据库或文件),所有选项都将在某个时刻加载到内存中。

对于较重的站点,有时文件访问速度比mySQL快。如果您的选项是只读的,并且您将有大量的并发用户(并发连接),那么使用文件而不是mySQL表来存储您的选项可能会更好。

mySQL的问题不在于数据量(相对),而在于连接的数量。