skillup

技術ブログ

Database サーバー・ネットワーク プログラミング全般

Webの高速化に関して

投稿日:

Webの高速化に関してメモ。

高速化って言っても幅広いんですけどね。自分が行なっている対策に関して。

一応LAMP環境を前提にしてます。

一番大事なのは測定

まずどこが遅くてボトルネックになっているかを調査するのが一番大切。

サーバー側であれば大部分がDB関連になっているかと思いますが、おそいSQLを出すことがまずは大切。ログやフレームワークなどではSQLの時間などが書いてあるものが多いので、これを利用しましょう。

フロント側でもどこで時間がかかっているかがわからないと対策しようがありません。

DB対策

おそい場合ほとんどがDBがらみの対策になるかと思います。自分が関わってきた対策でいうと、

  • ループの中で SQLを発生させている→うまく集計タイプのSQLにしてSQL自体を減らす
  • SQL自体が重い→EXPLAINで解析してうまくINDEXをはる
  • キャッシュを活用してSQLを減らす→特にマスタ系のデータを呼び出す場合なんかは効果大

こんな感じでしょうか。これで6〜7割型解決します。

フロント対策

あまりやらなかったんですが、直近の仕事でこれの改善を迫られることが多かったです。

この場合もブラウザのデバッガなどを使って問題点を探り、効果を見てあげましょう。

大きく分けると以下のようなものでしょうか。

  • CSS,JS,画像の数自体を少なくする
  • CSS,JS,画像ファイルを圧縮する
  • キャッシュ機能を使い、なるべくファイルアクセスを減らす

ちなみにどんな対策をすればいいかは、下記のようなツールを使うと、現段階でのパフォーマンスの点数を出してくれますし、対策なども簡単に教えてくれます。

PageSpeed Insights

サーバー編

私もまだ勉強中ですがMySQLの設定やWebサーバーの設定(例、Apache,Nginx)を見直したりなどでしょうかね。またメモリ使用率が上がっている場合なども単純に再起動すると改善することもあります。

ただ色々手を尽くしても改善しない場合はハードのスペックをあげるしかないですね・・・

参考リンク

たった数分!ページ高速化のためhtaccessでキャッシュ設定は絶対やっておこう!

わりと本気でウェブサイトの高速化に取り組んだ結果。

 

 

-Database, サーバー・ネットワーク, プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

CASE式のすすめ

SQL実践入門を7割がたぐらい終えたところで同著者の方の「達人に学ぶSQL徹底指南書」を学習しようと思っています。 この方の著書は気づいたら結構読んでましたね。 Contents1 CASE式での注意 …

no image

オブジェクト指向設計 依存関係の管理

オブジェクト指向シリーズ。読みにくい本が多い中でオブジェクト指向設計実践ガイドは勉強になるなー。 Contents1 依存関係の管理1.1 メモ1.2 実際のコーディング上のコツ1.3 感想 依存関係 …

no image

nginxのSSL通信や認証、ログに関して

今回はnginxでSSL通信をする際の注意点など。といっても、それほど難しくないようでSSL通信をするには主に2つだけです。 SSLを利用することを明示 サーバー証明書と秘密鍵を指示する またngin …

no image

ログ抽出コマンド特集 その1 cat+grep+sort

先日、メモリ使用率の調査に関して記事をかいたのですが、今度はそのログの収集や抽出をおこなってみようかと思います。 やりたいこと yyyy/MM/dd-HH:mm:ss  メモリ使用率(少数2桁まで)  …

no image

SQLにおけるナンバリング

本日はナンバリングに関して。 MySQLを使っていますと各テーブルにはid int not null auto_increment primary keyなどと打って主キーを打つことがほぼ習慣になって …