Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Django QuerySet "ARE" Patterns
Search
HayaoSuzuki
May 18, 2019
Technology
0
2.8k
Django QuerySet "ARE" Patterns
DjangoCongress JP 2019 Lightning Talk
HayaoSuzuki
May 18, 2019
Tweet
Share
More Decks by HayaoSuzuki
See All by HayaoSuzuki
Tasting "Python Distilled"
hayaosuzuki
0
14
Let's implement useless Python objects
hayaosuzuki
0
1k
How to Write Robust Python Code
hayaosuzuki
5
3k
Unknown Evolution of the Built-in Function pow
hayaosuzuki
0
1.1k
Python for Everyday
hayaosuzuki
1
1.4k
How to Use In-Memory Streams
hayaosuzuki
0
3.4k
Do you know cmath module?
hayaosuzuki
0
2.7k
Elementary Number Theory with Python
hayaosuzuki
1
3k
A Modernization of Legacy Django Based Applications
hayaosuzuki
1
6.4k
Other Decks in Technology
See All in Technology
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
1
240
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
190
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
260
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
220
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
1
520
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
1
330
Janus
bkuhlmann
1
490
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
190
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
160
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
210
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
520
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
140
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Faster Mobile Websites
deanohume
299
30k
Unsuck your backbone
ammeep
663
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
How STYLIGHT went responsive
nonsquared
92
4.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
RailsConf 2023
tenderlove
4
540
In The Pink: A Labor of Love
frogandcode
138
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Into the Great Unknown - MozCon
thekraken
10
990
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資料は事前に準備しよう