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
アプリの実装に役立つBackendとしてのPostgreSQL
Search
Takahashi Ikki
January 20, 2019
Programming
0
150
アプリの実装に役立つBackendとしてのPostgreSQL
2019-01-20 の 岡山モバイルアプリ開発もくもく会 での発表資料です。
Takahashi Ikki
January 20, 2019
Tweet
Share
More Decks by Takahashi Ikki
See All by Takahashi Ikki
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osk2025-duckdb
takahashiikki
1
280
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
260
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
810
ビジネスを止めずにシステムリプレースを進める為のCDCという選択肢/osc24ng-2-b
takahashiikki
0
76
アプリケーションエンジニアから見たPostgreSQL16 の新機能/postgresql16-new-information
takahashiikki
0
340
システムリプレースの中でCDCを取り入れている話/chugokudb32-cdc
takahashiikki
1
530
DBリファクタリングのデータリモデリング勘所/stafesstudy-db-modling
takahashiikki
5
2.1k
アプリケーションエンジニアから見たPostgreSQL15 の新機能/postgresql15-new-information
takahashiikki
7
3k
HowDoYouLikePostgreSQl12/Chugokudb28-1
takahashiikki
1
1.2k
Other Decks in Programming
See All in Programming
CSC509 Lecture 08
javiergs
PRO
0
260
Claude Agent SDK を使ってみよう
hyshu
0
1.4k
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
430
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
100
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
CSC305 Lecture 12
javiergs
PRO
0
230
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
120
SODA - FACT BOOK(JP)
sodainc
1
8.9k
チームの境界をブチ抜いていけ
tokai235
0
230
AkarengaLT vol.38
hashimoto_kei
1
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
Six and a half ridiculous things to do with Quarkus
hollycummins
0
220
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Scaling GitHub
holman
463
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
A Tale of Four Properties
chriscoyier
161
23k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
620
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Become a Pro
speakerdeck
PRO
29
5.6k
GitHub's CSS Performance
jonrohan
1032
470k
Transcript
ΞϓϦͷ࣮ʹཱͭ PostgreSQL 2019-01-20 ୈ30ճϞόΠϧΞϓϦ։ൃ͘͘ձ
͓͠ͳ͕͖ 1.͋͏ͱΈʔ 2.PostgreSQLͷྻܕ 3.·ͱΊ
1. ͋͏ͱΈʔ
1. ͋͏ͱΈʔ • ߴڮ Ұٍ • ΦϛΧϨ WebΤϯδχΞ • ຊPostgreSQLϢʔβʔձ
தࠃࢧ෦
גࣜձࣾΦϛΧϨ શࠃ35,000݅ͷࠗ׆ύʔςΟΛ ܝࡌͨ͠ϙʔλϧαΠτ 30ສਓڧͷձһͷํʑʹ͝ར༻͍͍ͯ· ͢ɻ ࠗ׆ͱݴ͑ΦϛΧϨʂ \\͍͍݁ࠗͧʂʂ//
2. PostgreSQLͷྻܕ
ׂͱ͋Γ͕ͪͳΞϓϦ ͷཁ݅ ಥવͰ͕͢ɺօ͞Μ ͜ΕɺͲ͏࣮ͬͯ͠·͢ʁ
λάׂ࣮ͱਏ͗͢ • ొ؆୯ɻ • ฤूͱݕࡧ͕ࠈɻ
1ΧϥϜͷςΩετܕʹcsv۠ΓͰೖΕΔ ߋ৽ਏ͍ɻݕࡧਏ͍ɻ (δΣΠΥʔΫ) tag1, tag2, tag3,... ͬͯΔɻ tagΛ3͔ͭ͠αϙʔτ͠ͳ͍ʁ
ͦ͜ͰྻܕͰ͢Αɻ CREATE TABLE blogs ( title varchar(64), content text, tags
varchar(16)[] )
ྻܕͷྫ INSERT INTO blogs (title, content, tags) VALUES ('͘͘ձ', '໌͘͘ձͰ͢',
'{ "ios", "android" , "PostgreSQL" }') title | contents | tags ------------+----------------------+-------------------------- ͘͘ձ | ໌͘͘ձͰ͢ | {ios,android,PostgreSQL} (1 row)
ྻܕͷϝϦοτ • ΠϯσοΫε͕ޮ͘ɻ • ݕࡧΛ͢Δҝͷԋࢉࢠϝιουͷαϙʔτ͕๛ɻ • औಘޙ֤ݴޠͷྻͱͯ͠༻Ͱ͖Δ ( Djangoͱ͔ͦ ͏.
)
ྻܕͷݕࡧʹ͍ͭͯ 'ios' λά͕͋ΔͷΛݕࡧ. SELECT * FROM blogs WHERE 'ios' =
ANY(tags); title | contents | tags ------------+----------------------+-------------------------- ͘͘ձ | ໌͘͘ձͰ͢ | {ios,android,PostgreSQL} (1 row) ios λά ͕͍ͭͯΔ ͔ͭ android λά͕͍ͭͯΔ Έ͍ͨͳݕࡧͰ͖Δɻ
ྻܕͷऔಘʹ͍ͭͯ SELECT tags[1] AS tag FROM blogs; tag ---------- ios
(1 row) ͦͷ΄͔ʹ tags[2:3] : ྻͷ 2ʙ3൪Λऔಘ tags[2:] : ྻͷ 2൪Ҏ߱Λऔಘ tags[:2] : ྻͷ 2൪ҎԼΛऔಘ ※ 0͔Β։࢝͠ͳ͍ࣄʹதࢭ
ͦͷଞʹָʹཁ݅Λ ຬͨͤΔ SELECT unnest(tags) , count(*) FROM blogs GROUP BY
unnest(tags) ORDER BY count(*) DESC; unnest | count ------------+------- database | 2 ios | 1 PostgreSQL | 1 android | 1 (4 rows)
ྻܕͷσϝϦοτ • ֎෦Ωʔ੍͕షΕͳ͍ɻ => ͷ߹ੑΛอূ͢Δͷ͕͍͠ɻ => λάݕࡧͳͲͷϑϦʔςΩετͷσʔλΛอ࣋͢Δͷʹ ద͍ͯ͠Δɻ
3. ·ͱΊ
3. ·ͱΊ ࠓճɺPostgreSQLͷྻܕͷհΛ͠·ͨ͠ɻ ͱͯڧྗͳΈͰ͕ͪ͢ΖΜϝϦοτɾσϝϦοτ͕͋Γɺ ඞͣۜ͠ͷؙͱ͍͏Θ͚Ͱͳ͍Ͱ͢ɻ ͳͷͰɺunnest() array_agg() Λͬͯ ߦ
<=> ྻؒΛ૬ޓม͢ΔͳͲɺ ϝϦοτɾσϝϦοτΛڗडͰ͖ΔΑ͏ͳܗͰ ͍ͬͯ͘ͷ͕ྑ͍͔ͱࢥ͍·͢ʂ
4. ࠂ தࠃํDBษڧձ 2019-02-02 () ୈ26ճ தࠃํDBษڧձ in Ԭࢁ https://dbstudychugoku.connpass.com/event/112468/
SQLνϡʔχϯά(EXPLAIN)ͷํ๏ύϥϝʔλνϡʔχϯάΛ औΓ্͛·͢ɻ ઈࢍLTൃදऀΛืूதͰ͢ʂʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ