POSTGRES IS DIFFERENT FROM
(BETTER THAN)
YOUR RDBMS
Gurjeet Singh
gurjeet.singh.im
EDB - EnterpriseDB.com
FROM THE PERSPECTIVE OF A
Developer
Manager
DEVELOPER'S PERSPECTIVE
License
Reliability
Security
Features
Extensibility
Performance
Diagnosability
DEVELOPER : LICENSE
BSD-like License
Liberal than/Very different from GPL.
PostgreSQL License gives you
Freedom to read, p...
DEVELOPER : RELIABILITY
ACID compliant
Constraints (Primary Key, Foreign Key, CHECK)
Data-page checksums to detect corrupt...
DEVELOPER : SECURITY
Per-object GRANT/REVOKE permissions
Per-column GRANT/REVOKE permissions
SSL connections
LDAP and RADI...
DEVELOPER : FEATURES
Postgres is a Platform
Vast feature set
... and ever-expanding
Postgres Feature Matrix
http://www.pos...
DEVELOPER : FEATURES
Common Table Expressions (CTEs)
Similar to Macro in programming languages
Supports recursive evaluati...
DEVELOPER : FEATURES : DATA TYPES
Many advanced data types come builtin
Full List of Builtin Data Types
http://www.postgre...
DEVELOPER : FEATURES : DATA TYPES
Does not have/need NVARCHAR data type
The CHAR/VARCHAR/TEXT types are capable of storing...
DEVELOPER : FEATURES : DATA TYPES
Boolean (a first-class data type)
Bit (and Bit strings)
Money
Bytea (binary data)
Interv...
DEVELOPER : FEATURES : DATA TYPES
Range Types (tsrange, daterange, int4range, ...)
Composite types
Builtin multi-dimension...
DEVELOPER : FEATURES : DATA TYPES
hstore
JSON
XML
DEVELOPER : FEATURES
Streaming Replication
Hot Standby
Per-transaction synchronous replication
True serializable transacti...
DEVELOPER : FEATURES
Create procedures in various programming languages
PL/pgsql
PL/perl
PL/tcl
PL/java
PL/v8 - JavaScript
DEVELOPER : FEATURE/PERFORMANCE
TOAST
The Oversized Attribute Storage Technique
Automatic out-of-line storage and automati...
DEVELOPER : PERFORMANCE
Cost-based optimizer
Index-only scans
Synchronized seq-scans
Table partitioning
Unlogged tables
DEVELOPER : PERFORMANCE
Partial indexes
Many types of indexes
BTree
Hash
Gin
Gist
KNN
SP-Gist
DEVELOPER : PERFORMANCE
Types of join-strategies
Nested-loop joins
Hash joins
Sort-Merge joins
Bitmap-index scan; Bitmap-A...
DEVELOPER : PERFORMANCE
Faster than NoSQL (at NoSQL use case)
See slides 32 onwards of Chrisophe Pettus'
PostgreSQL as a S...
DEVELOPER : DIAGNOSTICS
Per-function statistics
Performance Views
pg_stat_activity
pg_locks
pg_stat_*
pg_stat_all_tables
p...
DEVELOPER : DIAGNOSTICS
Logging Options
log_min_duration_statement
log_temp_files
DTrace/SystemTap support
Scripts to reco...
DEVELOPER : EXTENSIBILITY
Highly Extensible
Create Your Own
Data Types
Operators
Index Types
create extension
Check out
Fo...
DEVELOPER : EXTENSIBILITY
Examples
PostGIS
PostGIS adds support for geographic objects to the
PostgreSQL object-relational...
MANAGER'S PERSPECTIVE
Acquisition Cost (License)
Future Proof
Vendors/Providers (Companies who can help)
Maintenance Cost ...
MANAGER : ACQUISITION COST
Free
MANAGER : ACQUISITION COST
FREE
Save Money $$$
Higher Profit Margins
A Leg Up On The Competition
MANAGER : ACQUISITION COST
BSD-like License
Liberal than/Very different from GPL.
Install, use/develop and deploy full fea...
MANAGER : FUTURE PROOF
Community-driven
No single commercial entity controls it (unlike MySQL)
Will be always free (cost a...
MANAGER : FUTURE PROOF
Ever-increasing resource-pool; developers and DBAs
Compare growth in job requirements
MANAGER : VENDORS/PROVIDERS
Many top-quality vendors
EDB (EnterpriseDB)
PG Experts
2nd Quadrant
OmniTI
Command Prompt
Many...
MANAGER : MAINTENANCE COST
24/7 Support available
Very affordable support contracts
For e.g. EDB charges per-socket (unlik...
MANAGER : MAINTENANCE COST
Consulting
Remote-DBA
Database Health Checks
Training
For Developers
For DBAs
MANAGER : UPPER MANAGEMENT BUY-IN
Show them the last few slides :)
THANK YOU
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Upcoming SlideShare
Loading in...5
×

Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open

1,733

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,733
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open

  1. 1. POSTGRES IS DIFFERENT FROM (BETTER THAN) YOUR RDBMS
  2. 2. Gurjeet Singh gurjeet.singh.im EDB - EnterpriseDB.com
  3. 3. FROM THE PERSPECTIVE OF A Developer Manager
  4. 4. DEVELOPER'S PERSPECTIVE License Reliability Security Features Extensibility Performance Diagnosability
  5. 5. DEVELOPER : LICENSE BSD-like License Liberal than/Very different from GPL. PostgreSQL License gives you Freedom to read, patch/improve the code. An opportunity to understand the database internals Install, use/develop and deploy full feature-set without a license Upgrade hardware without paying for license cost Unlike commercial RDBMSs where licenses come in the way of development, QA, and hardware upgrades.
  6. 6. DEVELOPER : RELIABILITY ACID compliant Constraints (Primary Key, Foreign Key, CHECK) Data-page checksums to detect corruption
  7. 7. DEVELOPER : SECURITY Per-object GRANT/REVOKE permissions Per-column GRANT/REVOKE permissions SSL connections LDAP and RADIUS authentication
  8. 8. DEVELOPER : FEATURES Postgres is a Platform Vast feature set ... and ever-expanding Postgres Feature Matrix http://www.postgresql.org/about/featurematrix/
  9. 9. DEVELOPER : FEATURES Common Table Expressions (CTEs) Similar to Macro in programming languages Supports recursive evaluation (alternative to Oracle's CONNECT BY)
  10. 10. DEVELOPER : FEATURES : DATA TYPES Many advanced data types come builtin Full List of Builtin Data Types http://www.postgresql.org/docs/9.3/static/datatype.html
  11. 11. DEVELOPER : FEATURES : DATA TYPES Does not have/need NVARCHAR data type The CHAR/VARCHAR/TEXT types are capable of storing Unicode data
  12. 12. DEVELOPER : FEATURES : DATA TYPES Boolean (a first-class data type) Bit (and Bit strings) Money Bytea (binary data) Interval (difference between TIMESTAMPs) Enumerated Types Geometry Types (Point, Line Segment, Polygon, ...) Network Address (inet, cidr, macaddr)
  13. 13. DEVELOPER : FEATURES : DATA TYPES Range Types (tsrange, daterange, int4range, ...) Composite types Builtin multi-dimensional arrays Automatically defines array type of builtin and user-defined data types
  14. 14. DEVELOPER : FEATURES : DATA TYPES hstore JSON XML
  15. 15. DEVELOPER : FEATURES Streaming Replication Hot Standby Per-transaction synchronous replication True serializable transactions LISTEN/NOTIFY Triggers Exclusion constraints Window Functions Function overloading Operator overloading Full-text search Large Objects up to 4TB Materialized views
  16. 16. DEVELOPER : FEATURES Create procedures in various programming languages PL/pgsql PL/perl PL/tcl PL/java PL/v8 - JavaScript
  17. 17. DEVELOPER : FEATURE/PERFORMANCE TOAST The Oversized Attribute Storage Technique Automatic out-of-line storage and automatic compression
  18. 18. DEVELOPER : PERFORMANCE Cost-based optimizer Index-only scans Synchronized seq-scans Table partitioning Unlogged tables
  19. 19. DEVELOPER : PERFORMANCE Partial indexes Many types of indexes BTree Hash Gin Gist KNN SP-Gist
  20. 20. DEVELOPER : PERFORMANCE Types of join-strategies Nested-loop joins Hash joins Sort-Merge joins Bitmap-index scan; Bitmap-And/Or joins (in-memory) Can use multiple indexes of a table in the same scan Semi joins Anti joins
  21. 21. DEVELOPER : PERFORMANCE Faster than NoSQL (at NoSQL use case) See slides 32 onwards of Chrisophe Pettus' PostgreSQL as a Schemaless Database http://thebuild.com/presentations/pg-as-nosql-pgday- fosdem-2013.pdf
  22. 22. DEVELOPER : DIAGNOSTICS Per-function statistics Performance Views pg_stat_activity pg_locks pg_stat_* pg_stat_all_tables pg_stat_all_indexes ...
  23. 23. DEVELOPER : DIAGNOSTICS Logging Options log_min_duration_statement log_temp_files DTrace/SystemTap support Scripts to record and diagnose performance issues
  24. 24. DEVELOPER : EXTENSIBILITY Highly Extensible Create Your Own Data Types Operators Index Types create extension Check out Foreign Data Wrapper Foreign Tables PGXN.org
  25. 25. DEVELOPER : EXTENSIBILITY Examples PostGIS PostGIS adds support for geographic objects to the PostgreSQL object-relational database. PostgreSQL-HLL A PostgreSQL extension adding HyperLogLog data structures as a native data type
  26. 26. MANAGER'S PERSPECTIVE Acquisition Cost (License) Future Proof Vendors/Providers (Companies who can help) Maintenance Cost (Support) Buy-in From Upper Management
  27. 27. MANAGER : ACQUISITION COST Free
  28. 28. MANAGER : ACQUISITION COST FREE Save Money $$$ Higher Profit Margins A Leg Up On The Competition
  29. 29. MANAGER : ACQUISITION COST BSD-like License Liberal than/Very different from GPL. Install, use/develop and deploy full feature-set without a license Upgrade hardware without paying for license cost Unlike commercial RDBMSs where licenses come in the way of development, QA, and hardware upgrades.
  30. 30. MANAGER : FUTURE PROOF Community-driven No single commercial entity controls it (unlike MySQL) Will be always free (cost and project management)
  31. 31. MANAGER : FUTURE PROOF Ever-increasing resource-pool; developers and DBAs Compare growth in job requirements
  32. 32. MANAGER : VENDORS/PROVIDERS Many top-quality vendors EDB (EnterpriseDB) PG Experts 2nd Quadrant OmniTI Command Prompt Many smaller consulting teams/individuals
  33. 33. MANAGER : MAINTENANCE COST 24/7 Support available Very affordable support contracts For e.g. EDB charges per-socket (unlike Oracle, that charges per CPU)
  34. 34. MANAGER : MAINTENANCE COST Consulting Remote-DBA Database Health Checks Training For Developers For DBAs
  35. 35. MANAGER : UPPER MANAGEMENT BUY-IN Show them the last few slides :)
  36. 36. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×