SlideShare a Scribd company logo
Submit Search
Upload
初心者向けWordPress DB & Performance
Report
Share
Takayuki Miyauchi
フリーランス
Follow
•
13 likes
•
2,791 views
1
of
52
初心者向けWordPress DB & Performance
•
13 likes
•
2,791 views
Report
Share
Download Now
Download to read offline
Technology
2014/08/30 に開催されたWordFes Nagoyaで使用したスライドです。
Read more
Takayuki Miyauchi
フリーランス
Follow
Recommended
いまいまMySQL@OSC2016長岡 by
いまいまMySQL@OSC2016長岡
sakaik
208 views
•
38 slides
いまいまMySQL@OSC2016島根 by
いまいまMySQL@OSC2016島根
sakaik
318 views
•
27 slides
第51回NDS PostgreSQLのデータ型 #nds51 by
第51回NDS PostgreSQLのデータ型 #nds51
civicpg
4.4K views
•
57 slides
20121103 #odstudy できる! VBAマクロ by
20121103 #odstudy できる! VBAマクロ
Hiyou Shinnonome
1.6K views
•
62 slides
第52回なんてかんたんなJavaEE by
第52回なんてかんたんなJavaEE
civicpg
3.7K views
•
33 slides
Scala勉強会_2014_11_18 by
Scala勉強会_2014_11_18
Shuya Tsukamoto
373 views
•
27 slides
More Related Content
What's hot
Sql world を支える技術 by
Sql world を支える技術
Oda Shinsuke
1.3K views
•
15 slides
LESS使ってますか? by
LESS使ってますか?
じゅん なかざ
1.6K views
•
18 slides
ハンズのDynamoDBクラウドパターン by
ハンズのDynamoDBクラウドパターン
Naoyuki Yamazaki
1.4K views
•
19 slides
Sql world を支える技術 by
Sql world を支える技術
Oda Shinsuke
630 views
•
13 slides
便利なHerokuと active recordの 速度改善tips by
便利なHerokuと active recordの 速度改善tips
豊明 尾古
4.4K views
•
54 slides
今日はMongoDBの話はしない by
今日はMongoDBの話はしない
Akihiro Kuwano
1.8K views
•
27 slides
What's hot
(20)
Sql world を支える技術 by Oda Shinsuke
Sql world を支える技術
Oda Shinsuke
•
1.3K views
LESS使ってますか? by じゅん なかざ
LESS使ってますか?
じゅん なかざ
•
1.6K views
ハンズのDynamoDBクラウドパターン by Naoyuki Yamazaki
ハンズのDynamoDBクラウドパターン
Naoyuki Yamazaki
•
1.4K views
Sql world を支える技術 by Oda Shinsuke
Sql world を支える技術
Oda Shinsuke
•
630 views
便利なHerokuと active recordの 速度改善tips by 豊明 尾古
便利なHerokuと active recordの 速度改善tips
豊明 尾古
•
4.4K views
今日はMongoDBの話はしない by Akihiro Kuwano
今日はMongoDBの話はしない
Akihiro Kuwano
•
1.8K views
子テーマを使ったサイト制作 by shimoyama kengo
子テーマを使ったサイト制作
shimoyama kengo
•
1.5K views
さくらのクラウドアップデート情報2016年7月版 by さくらインターネット株式会社
さくらのクラウドアップデート情報2016年7月版
さくらインターネット株式会社
•
943 views
Web Worker +α - HTML5/JavaScript and Service Worker API by Ken William
Web Worker +α - HTML5/JavaScript and Service Worker API
Ken William
•
1K views
redashのプラベートカタログ作成してつまづいたアレやコレや by YASUKAZU NAGATOMI
redashのプラベートカタログ作成してつまづいたアレやコレや
YASUKAZU NAGATOMI
•
891 views
Aws of the_weekend_hobby by Namba Kazuo
Aws of the_weekend_hobby
Namba Kazuo
•
165 views
Datastore masakari 1_aurora_169_publication by 宗 大栗
Datastore masakari 1_aurora_169_publication
宗 大栗
•
528 views
はてなダイアリーキーワードをつくってみたよ by Tsukasa Oishi
はてなダイアリーキーワードをつくってみたよ
Tsukasa Oishi
•
1.3K views
RESTful #とは RailsスタイルからRESTを学ぼう by Toru Kawamura
RESTful #とは RailsスタイルからRESTを学ぼう
Toru Kawamura
•
17.7K views
Sql serverと他dbの違いを押さえよう! by Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
Oda Shinsuke
•
2.5K views
八王子 by Kazutake Hiramatsu
八王子
Kazutake Hiramatsu
•
436 views
WordPress Cloud Design Pattern by Wataru OKAMOTO
WordPress Cloud Design Pattern
Wataru OKAMOTO
•
6.6K views
勉強会 Vol2【SSL証明書とは】 by chimoto
勉強会 Vol2【SSL証明書とは】
chimoto
•
309 views
勉強会 Vol1 『ホスティングとは?』 by chimoto
勉強会 Vol1 『ホスティングとは?』
chimoto
•
202 views
勉強会 Vol3【ドメインとは】 by chimoto
勉強会 Vol3【ドメインとは】
chimoto
•
218 views
Similar to 初心者向けWordPress DB & Performance
サーバーレスでアンケートフォームを作ってみた by
サーバーレスでアンケートフォームを作ってみた
ryutakatori
1.3K views
•
13 slides
4時間まったりWordPressテーマ作成講座 by
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa
4.3K views
•
66 slides
WordPress中級者への道!テンプレートタグはどう動くのか!? by
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
5.3K views
•
53 slides
read parse-css by
read parse-css
Satoshi KOJIMA
544 views
•
11 slides
UnderScoreとbootstrapとsassでword pressのテーマをつくろう by
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
Takahiro Nakahata
15.1K views
•
81 slides
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ... by
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
Amazon Web Services Japan
26K views
•
103 slides
Similar to 初心者向けWordPress DB & Performance
(20)
サーバーレスでアンケートフォームを作ってみた by ryutakatori
サーバーレスでアンケートフォームを作ってみた
ryutakatori
•
1.3K views
4時間まったりWordPressテーマ作成講座 by Shinichi Nishikawa
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa
•
4.3K views
WordPress中級者への道!テンプレートタグはどう動くのか!? by Shinichi Nishikawa
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
•
5.3K views
read parse-css by Satoshi KOJIMA
read parse-css
Satoshi KOJIMA
•
544 views
UnderScoreとbootstrapとsassでword pressのテーマをつくろう by Takahiro Nakahata
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
Takahiro Nakahata
•
15.1K views
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ... by Amazon Web Services Japan
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
Amazon Web Services Japan
•
26K views
SciVerse ScienceDirect training 201103 by tsuneyoshi
SciVerse ScienceDirect training 201103
tsuneyoshi
•
1.8K views
MySQL by paulowniaceae
MySQL
paulowniaceae
•
4.6K views
脱コピペ!デザイナーにもわかるPHPとWP_Query by Hidekazu Ishikawa
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
•
4.7K views
2012年12月 JAWS-UG 東京 AWS Storage Gateway事始め by Serverworks Co.,Ltd.
2012年12月 JAWS-UG 東京 AWS Storage Gateway事始め
Serverworks Co.,Ltd.
•
1.5K views
WordPressでCSSプリプロセッサ入門 by Sou Lab
WordPressでCSSプリプロセッサ入門
Sou Lab
•
7.3K views
Rawlerフレームワーク(全体) by Takaichi Ito
Rawlerフレームワーク(全体)
Takaichi Ito
•
1.6K views
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch" by Kentaro Yoshida
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
•
7.1K views
AWS Black Belt Online Seminar 2017 Amazon Athena by Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 Amazon Athena
Amazon Web Services Japan
•
67.3K views
10分で分かるr言語入門ver2.15 15 1010 by Nobuaki Oshiro
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
•
3.2K views
AWS小ネタ集 by Takehito Tanabe
AWS小ネタ集
Takehito Tanabe
•
2.6K views
Parseでちゃんとアプリを作るコツ by Takuya Tejima
Parseでちゃんとアプリを作るコツ
Takuya Tejima
•
2K views
⑯jQueryをおぼえよう!その2 by Nishida Kansuke
⑯jQueryをおぼえよう!その2
Nishida Kansuke
•
21.5K views
基礎からのEBS by 宗 大栗
基礎からのEBS
宗 大栗
•
6.5K views
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介 by Amazon Web Services Japan
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
Amazon Web Services Japan
•
76.7K views
More from Takayuki Miyauchi
オープンソースによるイノベーションの継続 by
オープンソースによるイノベーションの継続
Takayuki Miyauchi
3.7K views
•
18 slides
I love Automation by
I love Automation
Takayuki Miyauchi
7.5K views
•
17 slides
え?まだMAMPで消耗してんの? by
え?まだMAMPで消耗してんの?
Takayuki Miyauchi
7.4K views
•
19 slides
WordPress on HHVM + Hack by
WordPress on HHVM + Hack
Takayuki Miyauchi
14.2K views
•
25 slides
オープンソース & オープンデータ by
オープンソース & オープンデータ
Takayuki Miyauchi
1.4K views
•
33 slides
VCCW - Vagrant based WordPress development environment by
VCCW - Vagrant based WordPress development environment
Takayuki Miyauchi
6K views
•
56 slides
More from Takayuki Miyauchi
(20)
オープンソースによるイノベーションの継続 by Takayuki Miyauchi
オープンソースによるイノベーションの継続
Takayuki Miyauchi
•
3.7K views
I love Automation by Takayuki Miyauchi
I love Automation
Takayuki Miyauchi
•
7.5K views
え?まだMAMPで消耗してんの? by Takayuki Miyauchi
え?まだMAMPで消耗してんの?
Takayuki Miyauchi
•
7.4K views
WordPress on HHVM + Hack by Takayuki Miyauchi
WordPress on HHVM + Hack
Takayuki Miyauchi
•
14.2K views
オープンソース & オープンデータ by Takayuki Miyauchi
オープンソース & オープンデータ
Takayuki Miyauchi
•
1.4K views
VCCW - Vagrant based WordPress development environment by Takayuki Miyauchi
VCCW - Vagrant based WordPress development environment
Takayuki Miyauchi
•
6K views
WordPress開発の最新事情 by Takayuki Miyauchi
WordPress開発の最新事情
Takayuki Miyauchi
•
4.4K views
Cybozu Kintone x WordPress by Takayuki Miyauchi
Cybozu Kintone x WordPress
Takayuki Miyauchi
•
2.6K views
WordPressプラグインを公開しよう! by Takayuki Miyauchi
WordPressプラグインを公開しよう!
Takayuki Miyauchi
•
1.8K views
WordPress Meetup at HUBBA Thailand by Takayuki Miyauchi
WordPress Meetup at HUBBA Thailand
Takayuki Miyauchi
•
1.7K views
JAWS-UG Kansai 特別編 AWSがあるとき。ないとき。 by Takayuki Miyauchi
JAWS-UG Kansai 特別編 AWSがあるとき。ないとき。
Takayuki Miyauchi
•
1.1K views
AWS+WordPressでつくるFirefoxアプリ by Takayuki Miyauchi
AWS+WordPressでつくるFirefoxアプリ
Takayuki Miyauchi
•
17.5K views
Ckan + AWS by Takayuki Miyauchi
Ckan + AWS
Takayuki Miyauchi
•
2.5K views
BookPress開発チームから見た 電子書籍の世界 by Takayuki Miyauchi
BookPress開発チームから見た 電子書籍の世界
Takayuki Miyauchi
•
1.6K views
WordBench Osaka 春の大翻訳祭り by Takayuki Miyauchi
WordBench Osaka 春の大翻訳祭り
Takayuki Miyauchi
•
6.1K views
アプリケーションプラットホームとしてのWordPress by Takayuki Miyauchi
アプリケーションプラットホームとしてのWordPress
Takayuki Miyauchi
•
5.2K views
WordPressで電子書籍 by Takayuki Miyauchi
WordPressで電子書籍
Takayuki Miyauchi
•
5.4K views
信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ! by Takayuki Miyauchi
信頼性が高くハイパフォーマンスなテーマ開発テクニックでライバルに差をつけろ!
Takayuki Miyauchi
•
2.2K views
WP Boosterの裏側 by Takayuki Miyauchi
WP Boosterの裏側
Takayuki Miyauchi
•
2.5K views
PHP-Ninjaの裏側 by Takayuki Miyauchi
PHP-Ninjaの裏側
Takayuki Miyauchi
•
2.8K views
Recently uploaded
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
172 views
•
13 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料
ssusere7a2172
300 views
•
19 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
73 views
•
42 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development site
Atomu Hidaka
71 views
•
41 slides
さくらのひやおろし2023 by
さくらのひやおろし2023
法林浩之
91 views
•
58 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
13 views
•
38 slides
Recently uploaded
(11)
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
172 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料
ssusere7a2172
•
300 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
73 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
71 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
91 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
13 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
8 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdf
nanamatsuo
•
14 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
175 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
41 views
初心者向けWordPress DB & Performance
1.
WordPress DB &
Performance 2014/08/30 Takayuki Miyauchi 初心者向け
2.
自己紹介
3.
• フリーランス •
デジタルキューブの「め組」メンバー • WordPressとかAWSとか、最近はオープンデー タのコミュニティにも出没
7.
デジタルキューブについて
8.
• Amazon Web
Service(AWS) コンサルティングパートナー • オープンソース大好き (WordPress、Nginx、CKAN …) • ほとんどのスタッフがリモートワーク (神戸、東京、新潟、福岡、仙台、和歌山 …)
11.
今日のお話
12.
• 初心者向けデータベースインデックス講座 •
WordPressで重くなりがちな処理 • WordPressで重くなりがちなプラグインのパターン • 質問タイム
13.
インデックス講座
14.
インデックスを使いこなすと 早くなるらしいぞ!
15.
インデックスって? • 索引のこと。
• 本で例えるとわかりやすいです。
16.
偶然にも手元に本があるのでこれで説明!
17.
この本の中からwp_headという単語がある ページを探すには2通りの方法があります。
18.
巻末の索引を見て探す。
19.
1ページずつ読んで探す。
20.
• 索引を使ったほうが圧倒的に早い。 •
索引を使えば、ページ数が増えても検索に必要 な時間はほぼ同じ。 超重要!
21.
DBに置き換えると こうなります。
22.
• インデックスを使ったほうが圧倒的に早い。 •
インデックスを使えば、レコード数が増えても 検索に必要な時間はほぼ同じ。 超重要!
23.
このあたりの挙動はSQLの EXPLAINで確認できます。 EXPLAIN
SELECT * FROM wp_posts WHERE …
24.
テスト用のテーブルに 約3万2千件のレコードを放り込みました。 CREATE
TABLE item ( id INT PRIMARY KEY AUTO_INCREMENT, name1 VARCHAR(100), —— indexあり name2 VARCHAR(100), —— indexなし index(name1) );
25.
以下のSQLは2つとも同じ結果が得られます。 • select
* from item where name1 = ‘item-1’; • select * from item where name2 = ‘item-1’; ただし `name1` はインデックスあり、 `name2` はインデックスなしです。
26.
mysql> select id
from item where name1 = 'item-1'; +----+ | id | +----+ | 1 | +----+ 1 row in set (0.00 sec)
27.
でも負荷はまるで違う EXPLAINの結果表示される表の `rows`
は、 データを取得するために参照したレコードの数。
28.
インデックスを使用しない場合、 必要な行がたったの1行でも、 データベースはすべてのレコードセットを参照します!
レコードが増えるほど重くなる!
29.
そんなわけで インデックスは超大事
30.
WordPressで 重くなりがちな処理
31.
インデックスが 効いてないクエリー (例)
32.
みんな大好き カスタムフィールド! meta_key
meta_value
33.
meta_valueにはインデックスが設定されてい ないので、meta_valueを使った検索は重い。 $args
= array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'featured', 'value' => 'yes', ) ) ); $postslist = get_posts( $args );
34.
同じ理由でmeta_valueを使った 並べ替えも重い! $args
= array( 'post_type' => 'product', 'orderby' => 'meta_value', 'meta_key' => ‘age', ); $postslist = get_posts( $args );
35.
その他にも • 頻繁に書込するのは重くなる。
• 大きなデータを保存すると重くなる。 • Transient APIは使い過ぎに注意。 • いろいろなテーマやプラグインのインストールとアンイン ストールを繰り返すと、Optionsが肥大化して重くなる。
36.
重くなりがちな プラグインのパターン
37.
たとえば人気ランキング系 プラグイン •
人気ランキングを生成するにはページにアクセスがあるた びに、それをデータベースに保存する必要があるはず。 • 月別、週別など、柔軟にランキングを生成するには、サイ トにアクセスがあるたびにページの情報と日付をデータベー スに保存しているはず。 • 1日1,000PVあるサイトなら毎日1,000行のレコードがデー タベースに追加されることになる。。。
38.
このプラグインは Google Analytics
APIを使ってるので安心! http://wordpress.org/plugins/simple-ga-ranking/ 作者: @horike37さん
39.
言わずと知れたJetpackにも 人気ランキング機能があります。
40.
その他にも • Eコマース系のプラグインなどは、meta_valueによる検索
を多用してる場合があるので、それらのプラグインを使う 場合は要注意。 • 他にもいろいろあるはず。
41.
プラグインを使う場合には、 想像力が大事! これってDBに頻繁に
書き込みするのかな? 大きなデータを 保存してないかな? このファイルは どこに保存されるの? どのテーブルに 保存するのかな? どんなSQLを 実行してるの?
42.
遅いSQLの見つけ方
43.
Debug Bar https://wordpress.org/plugins/debug-bar/
開発者が豪華!
44.
Debug Barを使うときは以下の設定を追加 define(
'WP_DEBUG', true ); define( 'SAVEQUERIES', true );
45.
SQLの履歴が簡単に確認できます!
46.
http://knowledge.sakura.ad.jp/tech/283/
47.
そうは言ってもどうしても 使いたい時がある!
48.
キャッシュ系プラグインではもっとも簡単で高速&安心
49.
DBにPerconaを使用 リバースプロキシを有効化すればさらに高速
50.
最後に宣伝
51.
「WordPressプラグイン開発のバイブル」 日本ではじめての開発者に フォーカスした書籍です。
52.
ありがとうございました!