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
16
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
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
4
600
MapLibreとAmazon Location Service
dayjournal
1
170
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
1
120
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
310
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.4k
JAWS-UG Bedrock Claude Night
yamahiro
3
670
本当のAWS基礎
toru_kubota
1
560
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
3
560
require(ESM)とECMAScript仕様
uhyo
4
920
Building Dashboards as a Hobby
egmc
0
330
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
670
現代CSSフレームワークの内部実装とその仕組み
poteboy
8
3.7k
Featured
See All Featured
It's Worth the Effort
3n
180
27k
RailsConf 2023
tenderlove
7
550
Testing 201, or: Great Expectations
jmmastey
29
6.4k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
1.9k
Writing Fast Ruby
sferik
622
60k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
5
1.3k
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資料は事前に準備しよう