システム開発

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

【2026年最新】IFS CloudとSAPを徹底比較|製造業に強いのはどっち?選定のポイントを解説

製造業を取り巻く環境は、ここ数年で大きく変化しています。原材料価格の高騰、サプライチェーンの不安定化、人手不足の深刻化、さらにはDXの加速など、企業にはこれまで以上に迅速かつ柔軟な意思決定が求められています。 こうした中で注目されているのが、企業の基幹業務を統合・最適化するERP(基幹業務システム)の再構築です。 その中で、多くの製造業が比較検討しているのが「IFS Cloud」と「SAP」です。いずれもグローバルで高い評価を受けているERPでありながら、その強みや設計思想は大きく異なります。 そのため、「どちらを選ぶべきか分からない」「自社に合うのはどちらなのか判断できない」といった悩みを抱える企業も少なくありません。 この記事では、そんなIFS CloudとSAPを「製造業」という視点から徹底比較し、それぞれの特徴や強み、導入時のポイントを分かりやすく解説します。 製造業の方 IFS CloudとSAPに興味がある方 グローバルERPの導入を検討している方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS CloudとSAPの違いがわかるだけでなく、「どのような企業にどちらが適しているのか」がわかりますよ。 (more…)

7 days ago

【2026年最新】IFS CloudとDynamics 365の違いとは?機能・強みを比較解説

企業の基幹システムとして導入が進むクラウドERPの中でも、IFS CloudとMicrosoft Dynamics 365は世界的に高い評価を受けている代表的なソリューションです。 しかし、両者は同じERPでありながら設計思想や強みが大きく異なります。 この記事では、2026年時点の最新情報をもとに、IFS CloudとDynamics 365の違いを「機能」「強み」「向いている企業」という観点から徹底的に比較解説します。 IFS CloudやDynamics 365の導入を検討している方 社内のIT人材が不足している方 クラウドERPに興味がある方 これらに当てはまる方におすすめの記事となっています。これを読めばIFS CloudとMicrosoft…

2 weeks ago

【2026年版】製造業向けAI搭載グローバルERP:注目の次世代ソリューション6選

製造業におけるERPは、単なる基幹システムから「意思決定の中枢」へと進化しています。 特に2026年現在、AIの統合はもはやオプションではなく、競争力を左右する重要な要素となっています。 AIを搭載したERPは、従来の「可視化」から一歩進み、「予測」「最適化」「自動化」を実現し、企業の意思決定スピードと精度を飛躍的に向上させています。 この記事では、製造業向けに特化したAI搭載グローバルERPの中から、特に注目すべき6つのソリューションを徹底解説します。 AI搭載グローバルERPに興味がある方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば最新版のAI搭載グローバルERPがわかるのはもちろん、製造業におけるERPの選び方まで丸わかりですよ。 (more…)

2 weeks ago

【2026年最新】製造業向けグローバルERPシステムおすすめ10選

製造業を取り巻く環境は、グローバル競争の激化、サプライチェーンの複雑化、そしてデジタル化の加速により大きく変化しています。 その中でERP(統合基幹業務システム)は、単なる業務管理ツールではなく、経営の意思決定を支える中核システムへと進化しています。 特に2026年においては、「クラウド化」「AI活用」「グローバル対応」「生産現場との連携」が重要な選定ポイントとなっています。 ERPは企業の成長戦略そのものに直結するため、自社の規模・業種・将来展望に適したシステム選びが不可欠です。 この記事では、製造業向けの代表的なグローバルERPを10製品厳選し、それぞれの特徴を解説します。 グローバルERPシステムが気になる方 製造業の方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めば主要なグローバルERPシステムが丸わかりですよ。 IFS ERP(IFS Cloud) IFS Cloudは、製造業に加えて設備管理やサービス業務まで一体的に管理できる統合ERPです。 特に「アセット集約型製造業」や「プロジェクト型製造」に強みを持っています。…

2 weeks ago

SQA(ソフトウェア品質保証)とは? 顧客満足度を高める品質維持の役割と重要性

ソフトウェア開発において品質の確保は単なる技術的課題ではなく、企業の信頼性や顧客満足度に直結する重要な要素です。 その中核を担うのがSQA(Software Quality Assurance:ソフトウェア品質保証)です。 SQAとは、開発プロセス全体を通じて品質を計画的に作り込み、維持・向上させるための活動を指します。 この記事ではそんなSQA(ソフトウェア品質保証)について、その概要や役割などを紹介していきます。 SQA(ソフトウェア品質保証)が気になる方 品質管理に興味がある方 社内のIT人材が不足している方 これらに当てはまる方におすすめの記事となっています。これを読めばSQA(ソフトウェア品質保証)の特徴がわかるだけでなく、その重要性が丸わかりですよ。 SQA(ソフトウェア品質保証)とは SQA(ソフトウェア品質保証)とは、ソフトウェア開発において品質を計画的かつ継続的に確保するための活動全般を指します。 単に完成した製品の不具合を検出するテスト工程だけでなく、開発プロセス全体に関与し、品質を作り込む仕組みを整えることが重要な役割です。 具体的には、開発標準の策定や遵守状況の確認、レビューや監査の実施、品質指標の設定と分析、リスクの早期発見と対策などが含まれます。 これにより、開発の初期段階から問題の発生を未然に防ぎ、手戻りやコスト増大を抑えることが可能になります。…

3 weeks ago

IFS CloudにおけるMigration Jobsの実践

概要 IFS Cloud におけるMigration Job(マイグレーションジョーブ)は、カットオーバーフェーズにおける最重要ボトルネックである。本稿では、実プロジェクトから抽出した知見をもとに、ステージングアーキテクチャ・トランザクション管理・冪等性設計・大容量データ処理・自動アラートの5領域にわたる実践的設計手法とトラブルシューティング戦略を体系的に解説する。適切に設計されたマイグレーションは単なるデータ移送を超え、監査可能性と再現性を備えた運用基盤となる。  (more…)

3 weeks ago