Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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的速度如何?_Php_Mysql_Caching_Cdn - Fatal编程技术网

缓存对于站点有多重要;PHP的速度如何?

缓存对于站点有多重要;PHP的速度如何?,php,mysql,caching,cdn,Php,Mysql,Caching,Cdn,我刚刚做了一个决定 它是在PHP、MySQL和jQuery的AJAX中完成的。目前只有十几个提交,当它进入一个新页面时,我已经感觉到它有点滞后(因此运行一个新的MySQL查询) 对我来说,最重要的是尝试优化我的MySQL查询(通过准备好的语句),还是在没有提交新内容的情况下,值得查看CDN(Amazon S3)和缓存(很像WordPress插件WP Super Cache)静态HTML文件 作为一名开发人员,哪条路线对我最有利,也就是说,我最好集中精力加快网站的速度?对我来说,优化数据库是第一位

我刚刚做了一个决定

它是在PHP、MySQL和jQuery的AJAX中完成的。目前只有十几个提交,当它进入一个新页面时,我已经感觉到它有点滞后(因此运行一个新的MySQL查询)

对我来说,最重要的是尝试优化我的MySQL查询(通过准备好的语句),还是在没有提交新内容的情况下,值得查看CDN(Amazon S3)和缓存(很像WordPress插件WP Super Cache)静态HTML文件


作为一名开发人员,哪条路线对我最有利,也就是说,我最好集中精力加快网站的速度?对我来说,优化数据库是第一位的,因为任何缓存都可能导致,当你发现问题时,你需要重建所有缓存。这取决于你的速度到底在哪里。你有很多推特和facebook的东西在那里,可以很容易地减慢你的页面显着

使用firebug查看在您感觉到的缓慢加载时间内是否下载了任何内容。您还可以下载YSlow firefox插件,为您提供加速页面加载的提示


感知到的速度缓慢很大一部分可能是由于页面上的javascript,而不是后端。对于这样一个小的站点,在您提交数千份提交之前,您不应该在后端看到任何性能问题。

我查看了您的站点,它对我来说似乎也有点迟钝,尽管不是100%清楚它是数据库

好的第一步是从外面开始,然后以自己的方式进入。因此,请使用Firebug(Firefox)之类的东西,就像它的同类插件一样,可以让您在加载页面时分解时间

第二,根据您的上述评论,在适用的情况下开始使用准备好的声明;这会有很大的不同

第三,确保你的数据库工作完成得最少——这意味着确保你的索引在正确的位置。在这里,运行您在站点上得到的查询类型以及时间流逝的地点可能很有用。解释计划

MySQL驱动程序日志记录(如果您的驱动程序支持的话)在这里会很有帮助

如果网站仍然很慢,并且你已经缩小了使用数据库的范围,我的建议是首先做一个简单的优化。缓存数据库数据,如果可行的话,可能会给你带来巨大的好处。为此,一个非常简单的解决方案是使用Memcached,特别是考虑到您上面提到的堆栈:

在将其注入堆栈之后,请衡量您的性能和可伸缩性,如果您确实需要,请只采用更先进的技术。我想您会发现,简单的负载平衡、缓存和服务的一些实例在实现基本的性能+可伸缩性目标方面会有很大的帮助

同时,我建议提出一种方法来更定期、更准确地衡量这一点。例如,决定如何实际执行自动延迟测量和负载测试等

过早优化是万恶之源

-唐纳德·克努斯

当你看到问题时,不要急于下结论,不要浪费时间优化你认为可能存在的问题

此外,我认为在担心缓存层之前,在站点上还有更重要的事情要做(比如能够对同一个问题进行多次投票)

它是在PHP、MySQL和jQuery的AJAX中完成的,目前只有十几个提交,当它进入一个新页面时(因此运行一个新的MySQL查询),我已经感觉到它有点落后了

“能感觉到它有点滞后”——不要感觉到,要知道。运行基准测试并计时查询。您是否有效地运行查询?数据库是否设置了正确的索引和键

就是这么说的……

CDN的 CDN非常适合服务静态内容。CSS、JavaScript、图像等。这可以通过最小化请求所有资源所需的时间来加速页面的加载。它不会修复糟糕的查询实践

内容缓存 实现内容缓存的最简单方法是使用以下内容。基本上是放在你的网站前面,重新服务那些没有更新的内容。侵入性最小,易于设置,同时效果惊人

数据库 对我来说,最重要的是尝试并优化我的MySQL查询(通过准备好的语句)


你他妈的为什么还没有使用事先准备好的语句?如果您正在执行原始SQL查询,请始终使用准备好的语句,除非您完全信任查询中的内容。鉴于一个基于用户内容的网站,我认为你不能安全地这么说。如果您注意到查询时间很长,那么请查看数据库模式、每页运行的查询以及包含的内容量。对于几十个条目,即使是最糟糕的查询,您也不会注意到任何问题

有几个方面可以优化

  • 服务器
  • CSS/JS/Images
  • PHP代码/设置
  • mySQL代码/设置
  • 首先,我会使用firefox和yslow标签来评估您网站的性能,它会给出基于服务器的建议

    我使用的另一个解决方案是这个插件

    “PHP Speedy是一个可以安装在web服务器上的脚本,可以自动加快网页的下载速度。”

    第二,我会在一个不同的文件夹中创建一个静态域名,比如static.yourdomainane.com,然后将所有的图像、css、js移动到那里。然后将所有代码指向该域,然后调整web服务器设置以缓存所有这些文件

    第三,我会看看类似的文章/技术,以帮助压缩/优化css/js等静态文件

    第四,检查所有图像及其大小,确保它们完全优化。或者,公司