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
160
アプリの実装に役立つ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入門/osc25hi-duckdb
takahashiikki
0
390
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osk2025-duckdb
takahashiikki
1
710
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
950
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
890
ビジネスを止めずにシステムリプレースを進める為のCDCという選択肢/osc24ng-2-b
takahashiikki
0
110
アプリケーションエンジニアから見たPostgreSQL16 の新機能/postgresql16-new-information
takahashiikki
0
390
システムリプレースの中でCDCを取り入れている話/chugokudb32-cdc
takahashiikki
1
570
DBリファクタリングのデータリモデリング勘所/stafesstudy-db-modling
takahashiikki
5
2.2k
アプリケーションエンジニアから見たPostgreSQL15 の新機能/postgresql15-new-information
takahashiikki
7
3.1k
Other Decks in Programming
See All in Programming
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
400
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
220
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
1.8k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
300
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
500
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
320
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
320
Ruby x Terminal
a_matsuda
7
590
AIプロダクト時代のQAエンジニアに求められること
imtnd
2
740
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
710
TipKitTips
ktcryomm
0
160
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
590
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
61
52k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
150
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Music & Morning Musume
bryan
47
7.1k
Between Models and Reality
mayunak
2
230
The untapped power of vector embeddings
frankvandijk
2
1.6k
How STYLIGHT went responsive
nonsquared
100
6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Color Theory Basics | Prateek | Gurzu
gurzu
0
240
How to train your dragon (web standard)
notwaldorf
97
6.5k
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ൃදऀΛืूதͰ͢ʂʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ