WordPress数据库查询速度比较慢,如何改进

适度的sql查询可能会破坏wordpress应用程序开发站点的执行。偶尔,适度的查询是结构不合理的sql的后果,这种方式从来就不应该这样做。
更重要的是,在某些情况下,温和的查询实际上是某个时刻的快速问题 – 但随着网站变得越来越老练,调查变得越来越慢,无法保持对扩展数据库的了解。
尽管sql变得温和,但应该研究一些方法来发现和解决wordpress应用程序开发中的问题。在这里和那里可能需要某些web应用程序,并且可能没有足够的能量,资质或支出计划来进行自定义改进。没有任何准备的创建可能是某些问题的答案,但它可能比从当前代码库开始需要更长的时间。wordpress最初的结构是一个博客阶段,并且它一直保持着优秀。尽管如此,它已经发展成为一个完全成熟的内容管理系统(cms),并且出于一些目的,甚至可以快速创建一个强大的web应用程序,并且基本上比定制改进更低的支出计划。虽然wordpress提供内置开发应用程序,它可以用于web应用程序,以使其更加有用。固有的页面和帖子结构可以用于很多事情,但是如果需要包含,搜索或质疑,控制和显示自定义信息和字段,则需要一些额外的工作。
寻找缓慢的查询找到温和问题的起源包括两个阶段:
找出哪些问题真的是温和的。识别正在运行它们的程序。人们应该对两个模块和一个saas采取措施,使他们能够发现适度的查询。
查询监视器要获取有关当前正在运行的页面的信息,可以使用此模块。尽管有关于wordpress内部活动的整个数据集,但它给出了逐点细分:
这个要求有多少问题?页面上的哪个查询占用了最长的时间?哪些能力在sql问题中投入最多的能量?这些查询是来自模块,主题还是wordpress中心查询屏幕甚至可以识别具有令人不安的红色内容的温和问题,这使得选择问题sql变得非常简单。
调试栏用于查找格式中等sql的另一种非凡的工具是旧的,可信赖的debug bar模块。当页面加载时,debug bar提供了一个关于wordpress内部功能的数据:
wp_query的参数请求数据(计算修订规则协调)当前页面生成的sql查询要在调试栏中启用sql,用户应该在站点上的某个位置允许savequeries – 可能在wp-config.php中
警告:savequeries会影响站点上的执行,并且可能不应在生成服务器上使用。但是,它可以用在推进机器上。
使用debug bar查找中等sql并不是非常容易。例如,它没有为用户提供可排序的表或具有适度的查询功能。调试栏提供的是容量跟踪,它将用户精确地指向问题来源的方向。
这是已加载文档的简要说明以及正在执行查询的结果。通常情况下,人们热衷于破败的绝对保持部分;?这是温和的问题被执行的地方,以及应该开始他的狩猎的地方。设置提示此问题的每个容量的方便之处在于,它可以揭示在任何情况下sql执行的原因。
newrelic的newrelic是一个管理web应用程序开发执行的管理,包括wordpress应用程序开发。主管部门提供了大量有关网站执行情况的数据。在信息中失去所有方向感很难,newrelic为用户提供sql查询的每一分钟细节。
newrelic和我们之前引用的模块之间存在两个值得注意的对比:
newrelic提供了有关php执行的更多见解,直到精确计算每个函数所花费的时间newrelic跟踪对站点的每个需求,因此可以稍后引用它来发现中等sql。模块只是给他当前的页面。重要的是,newrelic有一个免费的安排级别,提供有关网站执行情况的一般数据,但是,为了检查奇异的需求和找到适度的查询,必须提高支付安排以获得奇特的几率和结束。
使用explain了解慢速查询到目前为止,设备已经得到保护,可以找到适度的问题。目前应该知道为什么这些询问会妨碍事情。
mysql explain口号可以启用,呃,澄清正在发生的事情。将explain添加到查询的开头表明mysql如何执行问题。对于复杂的查询,explain可以帮助区分sql中的中等焦点,例如,适度的子查询或浪费的活动。
修复慢速查询由于人们意识到查询是适度的,并且explain已经向用户透露了原因,因此应该采取一些选择来解决这些困倦问题。
选项1:扭转问题
可能存在一个问题,即编辑帖子的屏幕速度非常慢。查询是自定义字段的元框。
确定的sql部分带来了一个来自wp_postmeta表的meta_keys列表,它很可能不会以下划线的符号开头。group by解释意味着每个结果都是特殊的。
多次运行此查询,这是它可以采取的程度的时间:
1.7145秒
1.7911秒
1.8076秒
1.7707秒
1.8456秒
人们可能会开发出一个导致类似输出的查询。它必须被选为一种meta_keys。exceptional是特定的等价词,恰好是一个sql解释!
选项2:添加索引
当用户在设置的mysql表上运行sql问题时,它需要检查整个表以了解哪些是对特定查询有重要意义的行。当桌子变得庞大时,检查开始需要一段时间。
这就是mysql记录所在的位置。列表将信息放在表格中并对其进行排列,使信息的查找要求低得多。通过以特定方式对信息进行分类,文件有助于减少mysql为每次查询完成的过滤措施。
文件可以添加到单个段或不同的部分。
使用meta_key上的文件,第一个sql提问时间有点类似于:
0.0041秒
0.0023秒
0.0030秒
0.0025秒
0.0019秒
这非常聪明。
文件警报的表达式:每次insert在af表上使用列或update时,都会重新确定列表,这可能是一项昂贵的活动。记录可以更快地从表中读取,但写入速度较慢。虽然正确放置的索引列表可以非常好地工作,但是如果不检查列表对数据库的一般影响,就不应该对它进行痴迷。
选项3:缓存查询结果
一旦意识到存在一个温和的问题。而不是改变问题,可能存在一种情况,它只是放弃了调查的后果。这样,人们就会限制查询的执行频率,并且他会经常获得“免费通行证”。
wordpress transients api是保留查询的方法之一。利用瞬态来消除昂贵任务的后果,例如,
对外部网站的请求(例如获取正在进行的facebook帖子)缓慢的处理块(例如寻找具有惯常关节的巨大弦)数据库查询慢!采摘方法已经列出了许多替代方案,并且很可能有17种不同的方法来理解这种温和的探究。应采取哪种方法?
选择1(改变问题)取得了辉煌的成果。但是,应该考虑修改后的调查通常不具有类似结果的可能性。人们可能会在不知不觉中将这些代码弄得一团糟。
根据调查所使用的表格和章节,备选方案2(包括记录)并非总是可以想象。由于wordpress应用程序开发中心表,人们不得不强调记录的其他影响:
中心刷新程序是否需要额外的清单?将包括一个文件调低不同的查询,类似于insert和update?备选方案3(通过无家可归者保留结果)具有无关紧要的效果 – 用户无需更改第一次查询,也无需调整数据库结构。
通常,人们选择选项3.在一个特定的情况下,他可以选择另一个替代方案,依赖于他正在修复的问题或具有sql问题的特定网站。对大多数执行问题肯定没有一步到位的适应性反应,因此允许一个人与其他人的决定不同 – 或者在没有片刻延迟的情况下尝试三者中的每一个!
保持更新它在这里草拟了一个真正的问题。css-tricks上的自定义字段框确实是一些非常温和的数据库查询的罪犯。它同样勾勒出各种可能的安排方式。
构思全新理念
有一种不同的方法可以尝试和加速问题执行,包括更多的工作,而不仅仅是调整查询或包括列表。问题最慢的部分之一是连接表从客户端id到项目id的工作,并且需要为每个客户端执行此操作。
可以通过创建存储许可信息的表以及所有许可的客户端id和项id来对信息进行非规范化,并简单地针对特定客户进行查询。人们需要利用insert / update / delete上的mysql触发器将表修改为许可证表(或其他依赖于信息如何改变的人),但是这将显着改善对该信息提出质疑的执行。
因此,如果各种联接在mysql中缓和了问题,那么将查询分解为至少两个关联并在php中独立执行它们然后在代码中收集和引导结果可能会更快。
上一个:网站建设好后,需要更新哪方面的文章
下一个:制作独具特色的网站有哪些要领
祁门网站建设,祁门做网站,祁门网站设计