>php教程 >php手册 >WEB应用中,大量静态数据应当储存在数据库,还是直接储存在PHP业

WEB应用中,大量静态数据应当储存在数据库,还是直接储存在PHP业

WBOY
WBOY원래의
2016-06-06 19:42:501546검색

WEB应用中,大量静态数据应该储存在数据库,还是直接储存在PHP业务层? 意思是,一个存在大量静态数据的WEB应用,比如一个MYSQL-PHP-JS架构的WEB游戏,它存在大量相对静态的数据,比如每升一级需要多少经验,比如每个城市、每个道具的各项参数等等。这些数据

WEB应用中,大量静态数据应该储存在数据库,还是直接储存在PHP业务层?
意思是,一个存在大量静态数据的WEB应用,比如一个MYSQL-PHP-JS架构的WEB游戏,它存在大量相对静态的数据,比如每升一级需要多少经验,比如每个城市、每个道具的各项参数等等。这些数据通常仅在版本更新时可能发生一定变化。

如果储存在数据库(只读的表),那么每一个业务都需要查询一张或多张这样的静态数据表。
如果直接以关联数组的形式储存在PHP业务层(当然是从EXCEL策划表架构自动产生的PHP代码),那么对庞大的关联数组进行定义、操作似乎也会影响服务器PHP文件执行效率。

相比之下,上述两种选择哪种效率更高?相当于说把压力放在MYSQL层上还是PHP层上,哪个更轻松。

如果觉得我还没表述清楚请回帖说明,我会补充说明的。
------解决思路----------------------
比如每升一级需要多少经验,比如每个城市、每个道具的各项参数等等
如果升级是由 php 代码完成的,那么存成什么都无所谓
如果升级是由 SQL 指令码完成的,那么当然要存成表,以便后台实现

------解决思路----------------------
个人觉得你这个有点像是系统配置的信息一样。量多的话建议放在数据库中吧,放到缓存中方便读取
------解决思路----------------------
 为什么非要二选一呢,结合使用不行吗
数据源就放在mysql里,维护也是直接更新库里的数据
然后写一个程序,将每一组静态数据缓存成一个php脚本文件,例如:升级经验.data.php:1, 2=> 2)...
需要用到数据时,$升级经验 = include '升级经验.data.php';
分成多文件保存,用哪个读哪个,避免大量声明
数据更新时,改好mysql里的数据,将缓存文件删掉重新运行程序生成即可

------解决思路----------------------
个人感觉可以存数据库和redis里,

一般获取从redis来,如果redis没有值就去mysql获取

mysql的值通过php设置

只要维护好mysql和redis的同步(比如my【本文来自鸿网互联 (http://www.68idc.cn)】sql重启就更新redis,mysql更新也更新redis)

这样又好维护,也能直接放内存中,维护和访问速度都没问题

同二楼,不推荐放php代码中,这是最不好的办法。。。如果你真的要,那就在一个公共文件中define...

楼主自己取舍
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.