web-dev-qa-db-ja.com

ワードプレスにおけるCPUとDBの使用量の削減

私はクライアントの管理に使用するスマートインターフェイスWPベースを作成しました。
クライアントから返品/閲覧されるたびに、大量の情報とデータが使用されます。

これはロックされたインターフェースであり、トラフィックの急上昇はありません

先月、私はメジャーメモリとCPU使用率の急上昇を見ました、
デバッグバーをインストールし、すべてのオプションを開きました。

私が見ているのは毎回wordpressがwp-header-blogを含むということです
およびテンプレートローダー(または私は間違っていますか?) - それらを1回宣言できますか?

これはデバッグバーのクエリタブの例です

'clientsocialurls'
require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/sagive-manager/category.php'), include('/themes/sagive-manager/tabs/tab-siteinfo.php'), get_page_by_title #47 (14.4ms)
SELECT ID FROM armnd_posts WHERE post_title = 'זמנהוף שירותי תרגום' AND post_type= 'cheques'

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/sagive-manager/category.php'), include('/themes/sagive-manager/tabs/tab-cheques.php'), get_page_by_title #48 (3.9ms)
SELECT armnd_posts.* FROM armnd_posts WHERE 1=1 AND armnd_posts.post_type = 'attachments' AND (armnd_posts.post_status = 'publish') ORDER BY armnd_posts.post_date ASC 

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/sagive-manager/category.php'), include('/themes/sagive-manager/tabs/tab-attachments.php'), get_posts, WP_Query->query, WP_Query->get_posts #49 (34.7ms)
SELECT post_id, meta_key, meta_value FROM armn_postmeta WHERE post_id IN (2073,2086,2093,2104,2109,2114,2119,2137,2143,2148,2154,2160,2165,2174,2178,2186,2274,2650,2708,3163,3356,3507,3644,3673,3893,3924,4039,4139,4286,4311,4515,4596,4666,4698,4722,4738,4740,4841,4860,4908,5219,5941,6086,6317) ORDER BY meta_id ASC

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/sagive-manager/category.php'), include('/themes/sagive-manager/tabs/tab-attachments.php'), get_posts, WP_Query->query, WP_Query->get_posts, update_post_caches, update_postmeta_cache, update_meta_cache #50 (9.9ms)
SELECT armnd_posts.* FROM armnd_posts WHERE 1=1 AND armnd_posts.post_parent = 2119 AND armnd_posts.post_type = 'attachment' AND (armnd_posts.post_status = 'inherit') ORDER BY armnd_posts.post_date DESC 

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/sagive-manager/category.php'), include('/themes/sagive-manager/tabs/tab-attachments.php'), get_posts, WP_Query->query, WP_Query->get_posts

これは、クエリが呼び出されるたびにwordpressが両方のファイルをロードすることを意味しますか?
メモリ使用量とロード時間を最小限に抑えるために、それらを1回「宣言」することはできますか?

私は完全にポイントを逃しているとあなたは小型化するためにいくつかのヒントを共有することができます
CPU使用率とメモリ使用率が指定されている場合はキャッシュプラグインが使用されていない場合。

1
Sagive SEO

しゃれた、

  1. 各ページ要求でwp-blog-header.phpindex.phpにロードされます。 AJAX呼び出しが含まれています(それがあなたが「時々刻々」を意味するものであるなら。それはtemplate-loader.phpをロードします.
  2. これはあなたが見るSQLとは関係がなく、「スパイク」とは関係ありません。
  3. デバッグバーでSQLをよく見るために、Query Monitorプラグインをインストールします。
  4. ここに機密情報を公開しないでください(最初のSQLのクライアント名など)。 :-)
1
tivnet

HTTPはステートレスプロトコルであり、リクエストがサーバー内の任意のページに到達するたびにWordPressシステム全体を初期化します。 WordPressを正しく初期化するには、wp-blog-header.php、template-loaderなどのスクリプトが必要です。

1
Subharanjan