Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PostgreSQL - dlaczego moje zapytania są takie w...
Search
Adam Okoń
January 18, 2017
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PostgreSQL - dlaczego moje zapytania są takie wolne?
Adam Okoń
January 18, 2017
More Decks by Adam Okoń
See All by Adam Okoń
Ruby on Serverless
aokon
0
120
TRUG#69 - Make frontend development great again in Rails
aokon
0
250
TRUG#60 - Webpack 2
aokon
0
260
TRUG#54 - Z czym się je VueJS
aokon
0
230
TRUG#40 - Roda
aokon
0
220
Other Decks in Programming
See All in Programming
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
520
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
150
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
Intent as Code
shoppingjaws
6
950
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
140
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
140
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
100
Building an Out-of-Order CPU
latte72
1
760
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
270
Featured
See All Featured
Practical Orchestrator
shlominoach
191
12k
The Invisible Side of Design
smashingmag
301
52k
The Cult of Friendly URLs
andyhume
79
7k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Building Adaptive Systems
keathley
44
3.2k
Skip the Path - Find Your Career Trail
mkilby
1
230
We Are The Robots
honzajavorek
0
370
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Transcript
PostgreSQL - Dlaczego moje zapytania są takie wolne? Adam Okoń
Elegant Code
None
None
None
Przykładowy EXPLAIN
W jaki sposób możemy poprawić wrażenia z korzystania z psql?
W jaki sposób możemy zlokalizować wolne zapytania? Jak podejść do tematu analizy i optymalizacji zapytań? Rozkład jazdy
W jaki sposób mogę poprawić wrażenia z korzystania z psql?
Pimp my psql przy pomocy .psqlrc https:/ /github.com/thoughtbot/dotfiles/blob/ master/psqlrc
pgcli https:/ /github.com/dbcli/pgcli
W jaki sposób zlokalizować wolne zapytania?
None
pg_stat_statements Wymagane: postgresql-contrib
Przykładowa konfiguracja w pliku postgresql.conf
None
SELECT (total_time / 1000 / 60) as total_minutes, (total_time/calls) as
average_time, query FROM pg_stat_statements ORDER BY 1 DESC LIMIT 100; http:/ /www.craigkerstiens.com/2013/01/10/more-on-postgres- performance/
Jak podejść do tematu analizy i optymalizacji?
Przykładowy EXPLAIN
Czy możemy wyciągnąć więcej informacji na temat zapytania przy pomocy
EXPLAIN?
None
Dla nieprzekonanych EXPLAIN z poziomu ActiveRecord https:/ /github.com/bradurani/pg-eyeballs
Analiza zapytania - counting
Analiza zapytania - filtrowanie
Analiza zapytania - sortowanie
Optymalizacja zapytania przez dodanie indeksów
Indeksy warunkowe SELECT * FROM events WHERE user_id = 1
AND active = TRUE; CREATE INDEX index_events_on_created_at ON events USING btree (user_id) WHERE active = TRUE;
https:/ /coderwall.com/p/9hxejg/advanced-rails- indexing-where-clause-postgresql Jak dodać indeks warunkowy w migracji ActiveRecord
Co możemy zrobić kiedy mamy duży zbiór danych i chcemy
dodać indeks na bazie produkcyjnej?
Jak dodać indeks współbieżnie w migracji ActiveRecord https:/ /robots.thoughtbot.com/how-to-create- postgres-indexes-concurrently-in
Zrozumieć wykorzystanie indeksów SELECT relname, 100 * idx_scan / (seq_scan
+ idx_scan) percent_of_times_index_used, n_live_tup rows_in_table FROM pg_stat_user_tables WHERE seq_scan + idx_scan > 0 ORDER BY n_live_tup DESC; http:/ /www.craigkerstiens.com/2012/10/01/understanding-postgres- performance/
Przydatne linki https:/ /www.postgresql.org/docs/current/static/using-explain.html https:/ /robots.thoughtbot.com/reading-an-explain-analyze-query-plan http:/ /www.craigkerstiens.com/2012/10/01/understanding- postgres-performance/ https:/
/devcenter.heroku.com/articles/postgresql-indexes http:/ /blog.redpanthers.co/optimising-postgresql-database-query- using-indexes/ http:/ /tatiyants.com/pev/#/plans/new https:/ /www.amazon.com/gp/product/184951030X
Dzięki! Adam Okoń (@adamokon) https:/ /github.com/aokon