正直なところここは個人サイトだし、アクセス数も少ないから少々サービスが停止しようと気にならないし、
デバッグツールやらを利用してミリ秒単位のパフォーマンスチューニングしたりする必要もないから、
プログラムの実行速度などはあまり意識してきませんでした。
業務として Django を扱ったこともないので、それこそなんとなく QuerySet を利用して、
いけてないコード書いてるなぁーとか思いながらもいい加減に実装をしていたわけです。笑
と言いつつも、やっぱりパフォーマンスは気になるし、無駄なクエリが発行されていないかとかも
気になるわけです。
というわけで前置きが長くなりましたが、 QuerySet で発行されたクエリを見れるようにしたときの記録です。
settings.py の DEBUG=True となっているときのみ動作するようになっています。
インストールする
pip を利用してサクッとインストールします。
$ pip install django-debug-toolbar
INSTALLED_APPS に追加する
INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
'debug_toolbar',
]
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
url(r'^__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
MIDDLEWARE に追加する
MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
INTERNAL_IPS = ('127.0.0.1',)
SQL リンクをクリックすると、実際に発行されたクエリを確認できます。
SELECT された結果と EXPLAIN した結果を Sel, Expl ボタンからそれぞれ確認できます。
ちなみに当サイト、外部キー連携をそれなりに使っているのですが、副問合せが多発していることがわかって絶望しました。
また、インデックスも全然足りていない事実も発覚しました。笑
まだ 100 記事程度しかないのでパフォーマンスにはほとんど影響ないんですが、増えてきたらじわじわ遅くなっていきそうです。
新しい記事へ
フリーランスとして働き始めて2ヶ月で気づいたこと
mac に pip をインストールする
mac は標準で python が入っていますが、パッケージ管理の pip がインストールされていないので入れてみました。
2017/05/26 09:00
[GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する
Google Drive の特定フォルダ配下のファイル・フォルダの権限を一括で移譲するツールを Google Apps Script で作りました。
2018/11/10 15:54
[Windows] Ophcrack を使ってユーザーパスワードを解析する方法
家族で使っていた Windows7 のログインパスワードを忘れたため、Ophcrack を使って解析したときの記録です。
2017/09/30 21:00
[shell] フォルダ内にある大量の ZIP ファイルをまとめて解凍する
とある ZIP を解凍すると中に大量の ZIP が居たときに幸せになれるコマンドを紹介します
2018/06/19 23:45
[MySQL] データファイルから DB を復元する
先日 MySQL が再起動できなくなる問題が発生し、急遽データファイル(.frm, .ibd)から復元しました
2018/11/25 12:44