システム開発

Performance Optimization_WEBのページ表示速度改善方法

WEBページにおいてパフォーマンスの表示速度を上げることはとても重要です。

Googleの調査したデータによると、ページの表示が3秒以上掛かったサイトに対して待たずに離脱してしまうユーザーの割合は53%以上とのこと。

この記事ではそんな重要な要素であるページ表示速度について、改善するためのいくつかの方法ををご紹介したいと思います。

  • WEBページをお持ちの方
  • パフォーマンスを向上させる方法を知りたい方

これらに当てはまる方におすすめの記事となっています。これを読めばあなたのサイトの離脱率を下げる方法が分かりますよ。

改善方法①DBの抽出を最適化

パフォーマンスを最適化する時、クエリの最適化が頭に浮かぶものです。

なぜかというと、本当に動いているウェブには、データベース量がかなり大きくて、数百MBからGBまでにかかっているからです。

つまり、クエリ文は数十万のレコードがあるテーブルで抽出を実施しています。DBの抽出を実現する時、以下の方法がいくつか適用しています。

①Database index (indexing)

まず、「Indexとは?」を説明したいと思います。 Indexとはデーター型の1つ種類であり、データ表にある一定のフィールドの値を含め、該当する行目(ロー)を指します。

では、Indexを貼ってからページ表示速度がどのように改善されるのでしょうか?

例:SELECT * FROM users where name = ‘Lempi Veum’;

56.000レコードがある「users」テーブルで「name」にIndexを貼らない場合とIndexを貼っている場合で抽出して、比較しましょう。

Indexを貼っている場合の速度はあきらかに早いですね。

そしてページ表示の速度を考慮する時、DB内のフィールドでIndexを貼るべきです(できれば、DBを構築する段階から)。またIndexを貼る時は、以下の段階に優先順位をつけて対応してください。

  1. Pキー(PHP言語でLaravelは$table->increments()を使かたらPキーは自動的にIndexが貼られます。)
  2. 各テーブルの外キー
  3. 「where」文でよく使う (上述した例の通りです)

② Query cache(クエリキャッシュ)

「The query cache stores the text of a SELECT statement together with the corresponding result that was sent to the client. If an identical statement is received later, the server retrieves the results from the query cache rather than parsing and executing the statement again. The query cache is shared among sessions, so a result set generated by one client can be sent in response to the same query issued by another client.」

上記の文章がMySqlのホームページで「query cache」を定義しているものです。

複数のユーザーが同じいページにアクセスする時、抽出結果が既にcacheに保持されておきました。

そのため、他のユーザーはそのページにアクセスすると、cacheからクエリした結果を出してページの表示速度が速くなっていきます。

詳細な方法はこちらでご参考ください。

しかし MySql 5.7.20バージョンからは、query cacheが使えなくなります。 MySql 8.0バージョンから完全に除外されることになります。

その他の方法はLaravel等のフレームワークを使ってください。 cache queryを保存する為に、既にサポートしているので、とても便利です。

123$posts = Cache::remember(‘index.posts’, 30, function() {return Post::with(‘comments’, ‘tags’, ‘author’, ‘seo’)->whereHidden(0)->get();});

改善方法②課題の処理ロジックを変更する

DB内の抽出を最適化にしても、ページ表示速度があまり改善されない場合、どうすれば良いでしょうか。

今の課題で対応した方法(ロジック)を変更する方向で検討してみてください。

例えば、あるシステムの集計機能を実装しています。日間や年間をかけて膨大なデーター量で抽出しないといけません。

その時、リアルタイムにてデーター集計は大変ですよね。

一方、Cronjなら毎日・毎年等の集計が何かの作業で定期に実行され、結果を保存することができるのです。

これで、実行に時間がかかる作業は裏で実施されると思います。つまり、ユーザーが短時間で集計の結果を見ることができるということです。

このように、時間がかかるのにリアルタイムで不要になる作業は裏(underground)で実施した方が良いと思います。

cronjobを導入する前にDBのCPUの消耗


cronjobを導入した後DBのCPUの消耗

改善方法③フレームワークのサポートを活用

現在、ウェブサイトのほとんどがフレームワーク(Laravel, WordPress, CakePhp, …)で開発されています。

フレームワークなら既に最適化されているので、このメリットを活躍すれば工数が非常に削減できると思います。

Laravelで利用する場合、以下のいくつかポイントをオススメします。

Config cacheを使う

Laravel の既存コマンドを使ってキャッシュをコンフィグする:

php artisan config:cache

php artisan route:cache

php artisan view:cache


lazy loadingと eager loadingを利用する

LaravelはDBを対応する時、素晴らしいORMを提供しています。

EloquentのようにDBの各テーブルからabstracts modelを作られます。

Eloquentはeager loadingを利用する時、連携されているobject modelを全て抽出し、最初のクエリにレスポンスする為です。これはアプリケーションのレスポンスを追加されます。 

Lazy loadingは次のようにクエリします。

1234$books = App\Book::all();foreach ($books as $book) {echo $book->author->name;}

同様に、 eager loadingは次のようにクエリします。

1234$books = App\Book::with(‘author’)->get();foreach ($books as $book) {echo $book->author->name;}

適切なCacheと Sessionを利用する

Laravelではパフォマンスを最適化する時、RAMの中にCacheとsessionを保存するのが一番良い方法です。

その他に、「Redis」 や「MemcachedCache」を利用すると、sessionの抽出する速度も改善できます。

Asset bundlingを使う

Laravelでは、Laravel Mixを提供して、複数のcss/jsを同一のcss/jsにコンパイルするツールです。

そして、css/jsファイルを読み込む時、時間を短縮することができます。

まとめ

いかがでしょうか。WEBのページ表示速度を改善する方法について紹介していきました。

勿論、本日紹介紹介した方法以外にもパフォーマンスを最適化する方法が様々あります。

実用に応じて、相応しい方法を簡単に探して利用していくようにしましょう。

パフォーマンスの最適化は大切な作業でウェブサイト開発から稼働にかけてずっと対応し続ける必要があります。今回紹介した方法を参考にぜひWEBのページ表示速度を改善してみてはいかがでしょうか。

dehaでは、5年ほど前から、ベトナムオフショア開発を行っています。

ベトナムでオフショア開発を行う際の費用や、エンジニアの質を知りたい方は、無料で見積もりいたしますので、お気軽にお問い合わせください。

お問い合わせはこちらから

参考サイト

  1. 12 Tips for Laravel Performance Optimization in 2020
  2. 8.10.3.3 Query Cache Configuration

Mai Tran

Recent Posts

AI活用で業務効率化へ:2026年度IT導入補助金のスケジュールと活用法

「AIを業務に取り入れたいけれど、導入コストが気になる」「どのようなAIツールを選べばよいのかわからない」「補助金を使ってDXを進めたい」――このような悩みを抱える中小企業・小規模事業者は少なくありません。 そこで活用を検討したいのが、2026年度の「デジタル化・AI導入補助金」です。 従来の「IT導入補助金」から名称が変更され、2026年度はAI活用を含むデジタル化をより意識した制度となっています。 業務効率化や生産性向上につながるITツールの導入費用を支援することで、中小企業のDXを後押しする制度です。 この記事では、2026年度のデジタル化・AI導入補助金について、制度の概要から申請スケジュール、AI活用の具体例、申請時の注意点までをわかりやすく解説します。 AI導入を検討している方 IT導入補助金を申請したい方 これらに当てはまる方におすすめの記事となっています。これを読めば2026年度の「デジタル化・AI導入補助金」の詳細がわかるだけでなく、具体的な申請方法も丸わかりですよ。 (more…)

5 days ago

AX推進を成功させる7つのステップ|構想から定着までの実践ロードマップ

生成AIやAIエージェントなどの技術が急速に進化し、企業におけるAI活用は「一部の業務を効率化する段階」から「企業そのものの仕事の進め方を変える段階」へと移行しています。 こうした変革を指す言葉として注目されているのが、AX(AI Transformation)です。 しかし、AXを推進しようとして「まずは生成AIを導入してみよう」と考えるだけでは、十分な成果につながらないケースも少なくありません。 AIツールを導入したものの、一部の社員しか利用しない、期待したほど生産性が上がらない、既存システムとの連携が進まないといった問題が発生することがあります。 AXで重要なのは、AIという技術そのものではなく、AIを活用して業務・組織・意思決定・顧客体験などをどのように変えていくかという視点です。 そのためには、明確な構想を立て、対象業務を選定し、小さく実証し、成果を検証したうえで全社へ展開していく必要があります。 この記事では、AX推進を成功させるためのプロセスを7つのステップに分け、構想から社内への定着まで、企業が実践すべきポイントを解説します。 AXを推進したい方 AIに興味がある企業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばAX推進のための方法がステップごとに具体的にわかりますよ。 (more…)

1 week ago

2034年までのクラウドAI市場規模と動向:最新予測と企業の導入メリット

皆さんは「クラウドAI」をご存知でしょうか。クラウド環境を利用することで、高価なサーバーや専門的なAIインフラを自社で保有することなく、高度なAI機能を利用できるようになりました。 市場調査会社の各種レポートでも、クラウドAI市場は2034年に向けて急速な成長が予測されており、多くの企業が競争力強化や業務効率化を目的に導入を進めています。 この記事では、市場規模の最新予測や成長を支える要因、企業がクラウドAIを導入するメリットについて、最新の市場調査データをもとに詳しく解説します。 クラウドAI市場に興味がある方 クラウドAIの動向が気になる方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばクラウドAI市場の規模や動向について分かるだけでなく、企業のメリットまで丸わかりですよ。 (more…)

4 weeks ago

クラウド型AIとは?仕組みと企業が導入すべき理由

近年、ChatGPTをはじめとする生成AIの登場によって、多くの企業がAI活用に注目しています。 しかし、「AIを導入したいが、自社でサーバーやシステムを構築するのは難しい」「コストを抑えながらAIを活用したい」と考える企業も少なくありません。 そこで注目されているのがクラウド型AIです。インターネット経由でAIを利用できるため、高性能なAIを低コストかつ短期間で導入できることから、多くの企業で採用が進んでいます。 この記事では、クラウド型AIの仕組みや特徴、オンプレミス型との違い、導入メリット、導入時の注意点まで詳しく解説します。 AIを導入したいとお考えの方 社内のIT人材が不足している方 業務効率を上げたい方 これらに当てはまる方におすすめの記事となっています。これを読めばクラウド型AIの特徴がわかるだけでなく、導入方法まで丸わかりですよ。 (more…)

4 weeks ago

3分でわかる「AX段階モデル」|自社のAI活用レベルを知る

「AIを導入したいけれど、何から始めればよいかわからない」「ChatGPTを試してはいるものの、業務改善にはつながっていない」「競合企業はAIを活用しているようだが、自社はどのレベルなのか知りたい」。 このような悩みを抱える企業は少なくありません。 近年、企業のAI活用は「AIツールを使う」段階から、「AIを前提とした企業へ変革する」段階へと進化しています。 その変革を体系的に理解するために注目されているのがAX(AI Transformation)段階モデルです。 この記事では、AX段階モデルの概要と各ステージの特徴、自社がどの段階にあるのかを判断するポイントについて、3分で理解できるようわかりやすく解説します。 AIを導入したいが、どこから始めればよいかわからない方 自社のAI活用レベルを客観的に把握したい方 AIを活用して生産性向上や競争力強化を目指したい方 に当てはまる方におすすめの記事となっています。これを読めばAIを活用するための具体的な方法とAXモデルの具体的な仕組みが分かりますよ。 (more…)

1 month ago

なぜ今、企業にAXが必要なのか?

近年、AI(人工知能)は私たちの生活だけでなく、企業活動にも急速に浸透しています。 文章作成や画像生成、データ分析、問い合わせ対応など、これまで人が担っていた業務をAIが支援・代替できるようになり、多くの企業がAI活用に注目しています。 一方で、「AIツールを導入しただけ」で終わってしまう企業も少なくありません。 本当に競争力を高めるためには、単なるAI活用ではなく、企業全体をAI中心に変革する「AX(AIトランスフォーメーション)」という考え方が重要になります。 この記事では、AXとは何か、DXとの違い、そしてなぜ今企業にAXが必要なのかについて詳しく解説します。 AXに興味がある方 AIを活用したいとお考えの方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば今注目のAXについて丸わかりですよ。 (more…)

1 month ago