Your SlideShare is downloading. ×
0
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,662

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. POSTGRES IS DIFFERENT FROM (BETTER THAN) YOUR RDBMS
  • 2. Gurjeet Singh gurjeet.singh.im EDB - EnterpriseDB.com
  • 3. FROM THE PERSPECTIVE OF A Developer Manager
  • 4. DEVELOPER'S PERSPECTIVE License Reliability Security Features Extensibility Performance Diagnosability
  • 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. DEVELOPER : RELIABILITY ACID compliant Constraints (Primary Key, Foreign Key, CHECK) Data-page checksums to detect corruption
  • 7. DEVELOPER : SECURITY Per-object GRANT/REVOKE permissions Per-column GRANT/REVOKE permissions SSL connections LDAP and RADIUS authentication
  • 8. DEVELOPER : FEATURES Postgres is a Platform Vast feature set ... and ever-expanding Postgres Feature Matrix http://www.postgresql.org/about/featurematrix/
  • 9. DEVELOPER : FEATURES Common Table Expressions (CTEs) Similar to Macro in programming languages Supports recursive evaluation (alternative to Oracle's CONNECT BY)
  • 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. DEVELOPER : FEATURES : DATA TYPES Does not have/need NVARCHAR data type The CHAR/VARCHAR/TEXT types are capable of storing Unicode data
  • 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. 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. DEVELOPER : FEATURES : DATA TYPES hstore JSON XML
  • 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. DEVELOPER : FEATURES Create procedures in various programming languages PL/pgsql PL/perl PL/tcl PL/java PL/v8 - JavaScript
  • 17. DEVELOPER : FEATURE/PERFORMANCE TOAST The Oversized Attribute Storage Technique Automatic out-of-line storage and automatic compression
  • 18. DEVELOPER : PERFORMANCE Cost-based optimizer Index-only scans Synchronized seq-scans Table partitioning Unlogged tables
  • 19. DEVELOPER : PERFORMANCE Partial indexes Many types of indexes BTree Hash Gin Gist KNN SP-Gist
  • 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. 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. DEVELOPER : DIAGNOSTICS Per-function statistics Performance Views pg_stat_activity pg_locks pg_stat_* pg_stat_all_tables pg_stat_all_indexes ...
  • 23. DEVELOPER : DIAGNOSTICS Logging Options log_min_duration_statement log_temp_files DTrace/SystemTap support Scripts to record and diagnose performance issues
  • 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. 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. MANAGER'S PERSPECTIVE Acquisition Cost (License) Future Proof Vendors/Providers (Companies who can help) Maintenance Cost (Support) Buy-in From Upper Management
  • 27. MANAGER : ACQUISITION COST Free
  • 28. MANAGER : ACQUISITION COST FREE Save Money $$$ Higher Profit Margins A Leg Up On The Competition
  • 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. MANAGER : FUTURE PROOF Community-driven No single commercial entity controls it (unlike MySQL) Will be always free (cost and project management)
  • 31. MANAGER : FUTURE PROOF Ever-increasing resource-pool; developers and DBAs Compare growth in job requirements
  • 32. MANAGER : VENDORS/PROVIDERS Many top-quality vendors EDB (EnterpriseDB) PG Experts 2nd Quadrant OmniTI Command Prompt Many smaller consulting teams/individuals
  • 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. MANAGER : MAINTENANCE COST Consulting Remote-DBA Database Health Checks Training For Developers For DBAs
  • 35. MANAGER : UPPER MANAGEMENT BUY-IN Show them the last few slides :)
  • 36. THANK YOU

×