Django QuerySet "ARE" Patterns
by
HayaoSuzuki
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
明日から使うな! Django QuerySet アレパターン Hayao Suzuki @CardinalXaro
Slide 2
Slide 2 text
おまえ誰よ ● Hayao Suzuki @CardinalXaro ● 株式会社アイリッジ ○ Pythonエンジニア ○ テックリード(自称) ● オライリージャパンの回し者 ○ テクニカルレビュワー(自称)
Slide 3
Slide 3 text
今日のテーマ ● Django QuerySetでやらかした思い出を語る。 ● 本日、スマートフォンで作ったスライドなので手抜きです。 ● この発表はフィクションであり、営業さんが客先で軟禁されたとか エンジニアが土日待機したなどの事実はありません。
Slide 4
Slide 4 text
indexを張らずにDBがスパイクした ● token = models.TextField(max_length=200) ● token = models.CharField(max_length=200, db_index=True)
Slide 5
Slide 5 text
年月日で調べたい 'regist_dt__year': today.year, 'regist_dt__month': today.month, 'regist_dt__day': today.day
Slide 6
Slide 6 text
なんだこれは、たまげたなあ WHERE (EXTRACT(DAY FROM `regist_dt`) = 28 AND EXTRACT(MONTH FROM `regist_dt`) = 1 AND `regist_dt` BETWEEN '2019-01-01 00:00:00' AND '2019-12-31 23:59:59.999999'
Slide 7
Slide 7 text
こうした 'regist_dt__gte': datetime.datetime.combine(datetime.date.today(), datetime.time.min), 'regist_dt__lte': datetime.datetime.combine(datetime.date.today(), datetime.time.max),
Slide 8
Slide 8 text
そうそうこれだよ WHERE (`regist_dt` >= 2019-01-28 00:00:00 AND `regist_dt` <= 2019-01-28 23:59:59.999999
Slide 9
Slide 9 text
結論 ● 実行計画調べよう ● SQL見よう ● LT資料は事前に準備しよう