Laravelで始める DBパフォーマンス入門
安西先生…!! アプリケーションを速くしたいです……
DBのパフォーマンスを調整してみよう
まずはIndexを付与してみよう
Q1. DBにおけるIndexとは?
A1. データベースの性能を向上させる方法の一つ
構成要素
まずはIndexを付与してみよう
Q1. DBにおけるIndexとは?
A1. データベースの性能を向上させる方法の一つ
構成要素
A1. データベースの性能を向上させる方法の一つ
構成要素
「探すレコードを識別するデータの項目」
「対象レコードの格納位置を示すポインタ」
つまり
格納位置を特定し、その位置を直接アクセスする事で、検索速度をあげられる。
なので
インデックスが設定されていない場合の検索では、テーブルの最初から順番に1件ずつ探すため、時間がかかります。
参考
https://www.atmarkit.co.jp/ait/articles/1703/01/news199.html
早速実践してみた。
tyamahori.com で実践する
インストールするもの
-
https://github.com/barryvdh/laravel-debugbar
- 色々とでバックしてくれるもの
導入直後のキャプチャ
インストールするもの
-
https://github.com/barryvdh/laravel-debugbar
- 色々とでバックしてくれるもの
導入直後のキャプチャ
- 色々とでバックしてくれるもの
ポイントはQueries
- ここを見れば発行されているクエリーが確認できる。
- それをデバッグしてクエリーを最適化する
対応前キャプチャ
無駄にクエリが吐かれているので直す
コードを修正したらがっつり減った
次はSQLのデバック
EXPLAINを使う
乱暴にいうと、SQLがどのように実行されるかを教えてくれるコマンド
sample.sql
explain select * from `posts` where `published` = 1 and `posts`.`deleted_at` is null order by `created_at`
desc
EXPLAINを叩いた結果wwwwwww
- typeがALLになっていたらダメ
- フルスキャンがかかりパフォーマンスが悪い
ガバガバ実装で草が生えた
とりあえずカラムにindexをつける。
と思ったけど、うまくindexが効かず挫折。。。
と思ったけど、うまくindexが効かず挫折。。。
色々と調査はしているけど。。わからず。。
データが少なく、indexがつかない。。?
確固たる原因は分からず。。
おしまい
Author And Source
この問題について(Laravelで始める DBパフォーマンス入門), 我々は、より多くの情報をここで見つけました https://qiita.com/tyamahori/items/aa6260a4f25d2c9a9427著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .