Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Django QuerySet "ARE" Patterns
HayaoSuzuki
May 18, 2019
Technology
0
1.2k
Django QuerySet "ARE" Patterns
DjangoCongress JP 2019 Lightning Talk
HayaoSuzuki
May 18, 2019
Tweet
Share
More Decks by HayaoSuzuki
See All by HayaoSuzuki
hayaosuzuki
0
1.3k
hayaosuzuki
0
1.1k
hayaosuzuki
1
1.2k
hayaosuzuki
1
2.8k
hayaosuzuki
0
2.5k
hayaosuzuki
0
2.4k
hayaosuzuki
0
1.2k
hayaosuzuki
1
1.9k
hayaosuzuki
0
820
Other Decks in Technology
See All in Technology
muras
0
110
chaspy
1
300
ganariya
0
290
clustervr
0
170
sugimomoto
1
360
kappa4
4
2.4k
clustervr
0
210
satoshirobatofujimoto
0
110
hirosys
0
150
torisoup
0
310
layerx
1
960
masashible
0
110
Featured
See All Featured
zenorocha
297
40k
jponch
103
5k
matthewcrist
73
7.5k
keathley
18
650
colly
66
3k
frogandcode
127
20k
deanohume
295
27k
mongodb
23
3.8k
tmm1
61
8.5k
tanoku
86
8.5k
bkeepers
321
53k
akmur
252
19k
Transcript
明日から使うな! Django QuerySet アレパターン Hayao Suzuki @CardinalXaro
おまえ誰よ • Hayao Suzuki @CardinalXaro • 株式会社アイリッジ ◦ Pythonエンジニア ◦
テックリード(自称) • オライリージャパンの回し者 ◦ テクニカルレビュワー(自称)
今日のテーマ • Django QuerySetでやらかした思い出を語る。 • 本日、スマートフォンで作ったスライドなので手抜きです。 • この発表はフィクションであり、営業さんが客先で軟禁されたとか エンジニアが土日待機したなどの事実はありません。
indexを張らずにDBがスパイクした • token = models.TextField(max_length=200) • token = models.CharField(max_length=200, db_index=True)
年月日で調べたい 'regist_dt__year': today.year, 'regist_dt__month': today.month, 'regist_dt__day': today.day
なんだこれは、たまげたなあ 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'
こうした 'regist_dt__gte': datetime.datetime.combine(datetime.date.today(), datetime.time.min), 'regist_dt__lte': datetime.datetime.combine(datetime.date.today(), datetime.time.max),
そうそうこれだよ WHERE (`regist_dt` >= 2019-01-28 00:00:00 AND `regist_dt` <= 2019-01-28
23:59:59.999999
結論 • 実行計画調べよう • SQL見よう • LT資料は事前に準備しよう