我最近开始公开并慢慢推出一个自制的 CMS。该站点允许进行大量自定义,并朝着国际化和自定义的方向发展,达到不需要源代码的水平。这是一个个人项目,整个目的是看看我能把自己的编程限制推到多远(处理博客、网络漫画和小型论坛的 CMS 的分发问题不是我愿意的)考虑一下,直到我清理它并对其进行更多的工作 - 同样,鉴于它是一个业余项目,我怀疑它与其他更精致的项目相比是否有任何引力......但这些不是关注的主题手头的话题。)
我编写了一系列代码,可以查看每个页面的生成速度和运行的查询次数;平均而言,我看到每页执行 9-13,最多 12 个 MySQL 查询。生成页面的平均时间在 10-20 毫秒之间。现在,在没有任何专业设计经验的情况下,我应该争取的最佳结果是什么?
有什么方法可以减少生成时间(或者,平均每页 15 毫秒,这甚至都不是问题),或者减少大部分内容从中加载的页面上的查询次数的策略一个 MySQL 数据库,包括菜单项之类的东西。
请注意,这是一个非常宽泛的问题;我的目的不是提出一般性问题或引发对话,而是找出减少此类系统可能在服务器上产生的负载(如果有的话)的方法。
最佳答案
使用 PHP opcode cache 将跳过解析和编译成字节码的过程,从而显着减少打开和编译 PHP 脚本所需的时间。
打开 MySQL query cache 通常(尽管不总是)是个好主意。
与其关注查询的数量,不如关注通过优化您的查询来减少这些查询所花费的时间。拥有大量经过优化的小型查询通常比尝试减少查询数量更有效。
使用分析器,例如 XDebug 中内置的分析器.与 KCacheGrind 或 WinCacheGrind 等解释器一起,当您知道要关注什么时,优化代码真的很有帮助。优化对总执行时间贡献微乎其微的东西是不值得的。了解 *CacheGrind 中所有内容的含义是值得的。
我的 PHP 内容管理系统通常在大约相同的时间内加载一个页面(最低 8 毫秒,所有内容都是缓存命中)。但偶尔,当你做一些复杂的事情时,它可能需要超过 500 毫秒。当关注用户体验时,典型时间更重要,而不是离群值,但当关注服务器负载时,平均时间更重要,因此那些 500 毫秒的离群值突然变得非常重要。
关于mysql - 网站攻略 : A question about how many SQL queries are enough,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914151/
在Ruby中可以使用哪些替代方法来ping一个ip地址?标准库“ping”库的功能似乎非常有限。我对在这里滚动我自己的代码不感兴趣。有没有好的gem?我应该接受它并忍受它吗?(我在Linux上使用Ruby1.8.6编写代码) 最佳答案 net-ping值得一看。它允许TCPping(如标准rubyping),但也允许UDP、HTTP和ICMPping。ICMPping需要root权限,但其他则不需要。 关于ruby-Pingruby网站?,我们在StackOverflow上找到一个类
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
我需要从站点抓取数据,但它需要我先登录。我一直在使用hpricot成功地抓取其他网站,但我是使用mechanize的新手,我真的对如何使用它感到困惑。我看到这个例子经常被引用:require'rubygems'require'mechanize'a=Mechanize.newa.get('http://rubyforge.org/')do|page|#Clicktheloginlinklogin_page=a.click(page.link_with(:text=>/LogIn/))#Submittheloginformmy_page=login_page.form_with(:act
网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.
如何使用rubyonrails获取网络上某处其他网站的页面数据? 最佳答案 您可以使用httparty只是获取数据示例代码(来自example):requireFile.join(dir,'httparty')require'pp'classGoogleincludeHTTPartyformat:htmlend#google.comredirectstowww.google.comsothisislivetestforredirectionppGoogle.get('http://google.com')puts'','*'*7
我正在尝试绕过rails配置这个极其复杂的迷宫。到目前为止,我设法在ubuntu上设置了rvm(出于某种原因,ruby在ubuntu存储库中已经过时了)。我设法建立了一个Rails项目。我希望我的测试项目使用mysql而不是mysqlite。当我尝试“rakedb:migrate”时,出现错误:“!!!缺少mysql2gem。将其添加到您的Gemfile:gem'mysql2'”当我尝试“geminstallmysql”时,出现错误,告诉我需要为安装命令提供参数。但是,参数列表很大,我不知道该选择哪些。如何通过在ubuntu上运行的rvm和mysql获取rails3?谢谢。
我正在使用RubyonRailsv3.0.9,我想检索我设置了链接的每个网站的favicon.ico图像。也就是说,如果在我的应用程序中我设置了http://www.facebook.com/URL,我想检索Facebook的图标并在我的网页中使用\插入它。当然,我也想为所有其他网站这样做。如何以“自动”方式从网站检索favicon.ico图标(“自动”是指在网站中搜索图标并获取它的链接-我认为不是,因为并非所有网站都有一个名为“favicon.ico”的图标。我想以“自动”方式识别它)?P.S.:我想做的是像Facebook在您的Facebook页面中添加链接\URL时所做的那样:它
我正在尝试从googleAPI下载client_secret.json。我正在执行https://developers.google.com/gmail/api/quickstart/ruby中列出的步骤.使用此向导在GoogleDevelopersConsole中创建或选择项目并自动启用API。在左侧边栏中,选择同意屏幕。选择电子邮件地址并输入产品名称(如果尚未设置),然后单击“保存”按钮。在左侧边栏中,选择凭据并点击创建新客户端ID。选择应用程序类型已安装应用程序,已安装应用程序类型为其他,然后单击“创建客户端ID”按钮。点击新客户端ID下的下载JSON按钮。将此文件移动到您的工作