N+1問題におけるORMの重たさについて

tl;dr

ボトルネックはちゃんと測定して把握しないとダメだよ。

N+1問題

DjangoやRailsなど、ORMを利用するWebフレームワークなどの開発では、よく 「N+1問題」 というのが話題になります。ORMでは、あるモデルが参照している別のモデルを参照するとその時点でSQLが発行されてしまうため、気が付かないうちにパフォーマンスが低下する場合がある、というやつですね。

Django

例えば、Djangoで次のようなモデルがあったとき、

class Table1(models.Model):
    text = models
Django メモ集

Djangoのadminユーザをメールアドレス無しで登録するOne liner

テスト用に適当なadminユーザ登録したいだけなのに、パスワードが甘いだのメールアドレスも入れろだの怒られてムカついたときに。

python manage.py shell -c 'from django.contrib.auth.models import User;User.objects.create_superuser("admin", "", "pass")'
1