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
Postgres What they really use
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Craig Kerstiens
November 01, 2013
Technology
6
900
Postgres What they really use
Some insight into what features and functionality people actually use within their database.
Craig Kerstiens
November 01, 2013
Tweet
Share
More Decks by Craig Kerstiens
See All by Craig Kerstiens
Product planning w/ gridding - Effort vs. Impact rule of thirds
craigkerstiens
0
340
Five sharding data models and which is right? PGDay Nordic
craigkerstiens
0
220
Postgres at any scale
craigkerstiens
1
940
Five data models for sharding and which is right
craigkerstiens
0
170
Postgres Performance for Humans - All things Open
craigkerstiens
1
340
Postgres Performance for Humans - PyCaribbean
craigkerstiens
1
190
Postgres present and future
craigkerstiens
1
360
Marketing for Developers
craigkerstiens
0
280
Postgres – A Data Platform
craigkerstiens
2
510
Other Decks in Technology
See All in Technology
SLI/SLO 導入で 避けるべきこと3選
yagikota
0
150
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
300
スピンアウト講座02_ファイル管理
overflowinc
0
1.2k
生成AIで速度と品質を両立する、QAエンジニア・開発者連携のAI協調型テストプロセス
shota_kusaba
0
480
スピンアウト講座01_GitHub管理
overflowinc
0
1.2k
LLMに何を任せ、何を任せないか
cap120
8
3.1k
Phase06_ClaudeCode実践
overflowinc
0
1.7k
Phase04_ターミナル基礎
overflowinc
0
2k
DMBOKを使ってレバレジーズのデータマネジメントを評価した
leveragestech
0
200
Phase03_ドキュメント管理
overflowinc
0
2.2k
Phase08_クイックウィン実装
overflowinc
0
1.5k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
180
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1k
Facilitating Awesome Meetings
lara
57
6.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
My Coaching Mixtape
mlcsv
0
84
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
The Curse of the Amulet
leimatthew05
1
10k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Making Projects Easy
brettharned
120
6.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
@craigkerstiens Postgres What they really use
Interrupt me Ask questions
[email protected]
None
@craigkerstiens Postgres What they really use
Shameless plugs http://www.postgresweekly.com http://www.craigkerstiens.com http://www.postgresguide.com http://www.postgresapp.com http://postgres.heroku.com
Postgres - TLDR
Postgres - TLDR Datatypes Conditional Indexes Transactional DDL Foreign Data
Wrappers Concurrent Index Creation Extensions Common Table Expressions Fast Column Addition Listen/Notify Table Inheritance Per Transaction sync replication Window functions NoSQL inside SQL Momentum
What they really use ?
Why listen to what I say?
Largest fleet of Postgres in the world
Over 1 billion write transactions a day
What they really use ?
Production
43% on 9.1 2% on 9.0 54% on 9.2 Versions
Extensions
hstore pg_stat_statements postgis uuid-ossp pg_trgm unaccent fuzzystrmatch dblink cube pgcrypto
earthdistance tablefunc citext
extension adoption hstore 11.5% pg_stat_statements 3.5% postgis 3% uuid-ossp 3%
pg_trgm 3% unaccent 1.5% fuzzystrmatch 1.5% dblink 1.5% cube 1% pg_crypto 1% earthdistance 1% tablefunc 0.75% citext 0.5%
17% at least 1 of those 22% have 2 8%
have 3 2.5% have 4 .7% have 5 .2% have 11
PLV8 CREATE FUNCTION js_filter(js_function text, json_arguments text, data json) RETURNS
numeric as $$ var func = eval(js_function); var args = eval(json_arguments); var final_args = [data].concat(args); var result = func.apply(null, final_args); return 0 < result ? 1 : 0; $$ LANGUAGE plv8 IMMUTABLE STRICT;
PLV8 SELECT json_obj FROM some_table_with_json_obj_column WHERE js_filter( 'function (json, age)
{return json.age < age; }', '21', data.json_obj ) = 1; https://github.com/webnuts/full-throttle-postgres
Indexes
99.9% have an index 28% have gin 13% have gist
92% have unique 8% have conditional
Waste?
Unused Indexes
23% over 1000 rows 13% over 10000 rows 5% over
100000 rows 1.5% over 1 million rows 2% over 100 million rows
Bloat
0.1% over 100 GB 1.5% over 10 GB 8.7% over
1 GB 22.9% over 100 MB
2.3% over 100 MB and 5x bloat factor
Pg Extras https://github.com/heroku/heroku-pg-extras/
command usage index_usage 25.5% locks 19.0% cache_hit 18.0% blocking 7.5%
index_size 7.5% outliers 5.5% vacuum_stats 4.0% bloat 4.0% total_index_size 3.0% unused_indexes 2.0%
Problems new users face?
1. What do I need to pay attention to? 2.
How do I setup replication? 3. What editors are available? 4. How do I understand performance? 5. How can I use the cool stuff in my app? Top 5
Questions