データベースの最適化にOptimize DataBase[WordPress]

シェアしていただけるとうれしいです

スポンサーリンク

WordPressが記事を表示する仕組み

データベース
日本で流行りのWordPress。いわゆるCMS(Contents Management System)と呼ばれるWebシステムで、Webページのコンテンツを管理するシステムとして使われている。

ブログ界隈でよく使われているけど、ブログだけではなく、一般のホームページ(Webサイト)もHTMLやCSSの知識がなくても比較的簡単に作ることができるので、重宝されているわけだ。

一般のWebページは静的HTMLというもので作られている。HTMLの内容は実は普通のテキストファイルだ。HTMLで書かれたWebページを、サーバーにアクセスがあったときにブラウザに出力する仕組みになっている。パソコンの中のファイルをダブルクリックして読む、という感覚に近い。

一方、WordPressは動的HTMLと言って、アクセスがあるたびにWebサーバーが条件に応じてHTMLを組み立て、ブラウザに対して出力する。Webページの内容はあらかじめテキストファイルで保存されているのではなく、「データベース」というところに保存されている。データベースの中から必要なデータを抽出し、Webサーバーがそのデータを元にHTMLを組み立て、ブラウザに出力している。

WordPressを使ってWebページ(記事)を書く場合、管理画面の投稿の「新規投稿」から入力する。ここで入力した内容がデータベースに保存される。保存された内容には他の記事とは重複しない一意のID番号が割り振られる。

Webページを表示するときは、このID番号を使って該当の記事をデータベースの中から検索し、データを抽出して、ブラウザに表示させている、というわけだ。

パーマリンクの表示方法で若干異なるが、URLが、

  • /post-1234/
  • /?p=1234

となっていることが多いが、この「1234」がWebページのID番号、ということになる。

WordPressの「記事番号」は連番になっていない

通常、IDというのは1から順番に割り振られることが多い。ところが、WordPressの記事番号は連番になっていない。大抵の場合、飛び飛びになっている。なぜだろう?

実は、WordPressの新規投稿や記事の修正の際には「自動保存」という仕組みがある。編集中の内容を自動的にデータベースに保存してくれているのだ。何かのトラブルで編集中の内容が失われても、その前の自動保存の内容までは復元できるようになっている。この「自動保存」の内容にもIDが割り振られている。一時保存しても別のIDが割り振られている。

そのため、WordPressの記事番号は飛び飛びになっているわけだ。

ページの表示が遅くなる理由

WordPressは簡単に記事を追加できるところが魅力的だが、逆に弱点がある。
記事の数が増えてくると、だんだん表示が遅くなってくるのだ。

サーバーのスペックにもよるところが大きいので、どれくらいの記事数になると遅くなるか、ということは一概に言えないが、少なくとも100件の記事の中から1件見つけ出すのと、100万件の記事の中から1件の記事を見つけ出すのとでは、見つけ出すのにかかる時間は変わってくる。

まして、表示するのに必要な記事だけではなく、自動保存された記事が多数含まれていると、100件の必要な記事数に対して、1件あたり10の自動保存の記事が含まれているとすると、総数は1100件になる。100件から1件探すのと、1100件から1件探すのとでは、当然スピードが変わってくるわけだ。

また、データベースの宿命として、データの追加、更新、削除を繰り返し行なっていると、データの領域が「スカスカ」になってくる。PCのハードデイスクにファイルを書き込んだり、編集したり、削除したりしていると「フラグメント」が発生するのと同じようなことだ。「スカスカ」が大きくなってくるとデータベースの速度が遅くなり、結果的にページの表示速度が遅くなることにつながる。

データベースの最適化、Optimize DataBase

このような「不要な記事」の残骸を削除し、ついでに「スカスカ」を取り除いてくれるプラグインがあった。

Optimize DataBaseだ。

プラグインの新規追加のところから、「Optimize DataBase」をインストールして、有効化する。設定はデフォルトのままでOK。

メニューの「ツール」→「Optimize DataBase」を選択する。
「Start Optimization」をクリックすると最適化が始まる。
Optimize Database

削除された不要な記事が表示される。
Optimize Database

「スカスカ」だったテーブル(データを入れるところ)で最適化されたものは「TABLE OPTIMIZED」と表示される。
Optimize Database

どれくらいの「スカスカ」が最適化されたかがわかる。合計で79.716KBの「スカスカ」が最適化された。
Optimize Database

たまにやるのがオススメ

記事を投稿するたびに実行する必要はないと思われるが、定期的に実行することをおすすめする。体感的に劇的に表示が速くなるということはないが、少なくとも不要な記事を削除することで、データベースがディスクを占める容量は少なくなる。

ちなみに、「Optimize DataBase」を実行する前には、念のため、データベースのバックアップをおすすめする。もし「Optimize DataBase」がトラブっても、元の状態に戻せるように、という配慮の為だ。

ブログのバックアップを取ろう[WordPress]
ブログのバックアップを取ろう[WordPress]
デジタルデータは脆いです。一瞬にしてデータを失いかねません。もし今使っているPCのハードディスクが壊れたら。もし今使っているスマホを水没...

簡単にできるので、ぜひ。

WEBのシステムを作ったり保守したりするSE/プログラマというものをしています。
ブログやってますがブロガーではありません。週末WEB随筆家です。
まろと呼んでください。
スポンサーリンク

シェアしていただけるとうれしいです

フォローしていただけるとうれしいです