Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php LAMP中的性能:文件系统与数据库_Php_Mysql_Performance_Filesystems - Fatal编程技术网

Php LAMP中的性能:文件系统与数据库

Php LAMP中的性能:文件系统与数据库,php,mysql,performance,filesystems,Php,Mysql,Performance,Filesystems,我需要设计一个网站,其中有一些特定的用户配置友好的网址。它们必须在数据库中进行管理(哪个用户创建了它,哪个模块和数据必须加载,等等),并且它们必须具有某些系统权限(视图、操作等) 问题是:如果我为Apache直接加载的每个路径(如/section/subsection/index.php)创建了一个php文件,那么性能会更好;如果我检查数据库中的每个查询,或者它取决于页面的类型,性能会更好 将有3种页面: -大部分是静态的(一旦创建,就不需要连接数据库) -定期更新(我可以在页面未更新时删除这些

我需要设计一个网站,其中有一些特定的用户配置友好的网址。它们必须在数据库中进行管理(哪个用户创建了它,哪个模块和数据必须加载,等等),并且它们必须具有某些系统权限(视图、操作等)

问题是:如果我为Apache直接加载的每个路径(如/section/subsection/index.php)创建了一个php文件,那么性能会更好;如果我检查数据库中的每个查询,或者它取决于页面的类型,性能会更好

将有3种页面: -大部分是静态的(一旦创建,就不需要连接数据库) -定期更新(我可以在页面未更新时删除这些页面) -大部分是动态的(如加载用户事件,这需要执行数据库查询)


关于这一点是否有任何现有的brenchmark?

如果没有对您的设置、每个部分/小节中的条目数、加载类型等的更详细描述,没有人能为您回答这个问题

事实上,除了一些病态用例,没有人应该这样做。您应该使用实现中的基准数据来回答您的问题


我在您描述的使用PHP文件的解决方案中看到的唯一明显的缺点是代码重复,但是如果您能够自动创建文件,那么这将很容易管理。

简单回答:做更容易编码的事情。性能差异太小,无关紧要


我发现静态页面更容易成为文件。并构建了由PHP构建的页面。有时我有一个php文件构建一个页面。有时我有一个php文件构建许多页面,通常是一个页面上的小变体。但是,我必须传递参数来说明我正在构建哪种变体。

没有当前的实现,也没有当前的数据,这就是问题所在:先设计,然后解决问题。首先,我要问的是brenchmark。我要问的是,apache加载页面与apache将所有请求发送到脚本,脚本将搜索页面的数据库。对于任何实现,从数据库加载的毫秒数与从文件系统加载的毫秒数是否存在差异?“程序优化的第一条规则:不要这样做。程序优化的第二条规则(仅限专家!):还不要这样做。”如果您试图缩短尚未启动的设计的页面加载时间毫秒数,相信我,你做错了一件可怕的事情。@Nowhereman你所说的话适用于过度优化的情况。在进入设计阶段之前,您应该考虑未来的问题。您可以信赖“一旦发生,我们将修复”的原则。为了证明这一点,您可能已经阅读了“发布后解决问题的成本比在设计阶段解决问题的成本高200-2000倍”。ESL我认为你应该找出使用模式,使用这些页面的用户数量,他们的分布,然后决定选择哪一个。在我看来,应该使用DB,因为它在FS中负责FS故障、备份、导出、查询支持、缓存等,这是手动任务。@NachiketKate,这就是我的意思“除了一些病理性用例”。当然,如果他们计划在一个目录中有几十万个条目作为PHP脚本,他们应该检查他们的文件系统是否能够很好地处理大量的文件(有些可以,大多数不能)。但是,在设计的这一点上,由于需求很少,两个解决方案之间的时间间隔从未缩短过毫秒。所以他的问题不能(也不应该)得到回答…