Upload
bob-reece
View
215
Download
0
Embed Size (px)
Citation preview
7/27/2019 Postgres is Different From Better Than Your RDBMS
1/37
7/27/2019 Postgres is Different From Better Than Your RDBMS
2/37
POSTGRES IS DIFFERENT FROM
(BETTERTHAN)YOUR RDBMS
7/27/2019 Postgres is Different From Better Than Your RDBMS
3/37
Gurjeet Singh
gurjeet.singh.im
EDB - EnterpriseDB.com
7/27/2019 Postgres is Different From Better Than Your RDBMS
4/37
FROM THE PERSPECTIVE OF ADeveloper
Manager
7/27/2019 Postgres is Different From Better Than Your RDBMS
5/37
DEVELOPER'S PERSPECTIVELicense
ReliabilitySecurityFeaturesExtensibility
PerformanceDiagnosability
7/27/2019 Postgres is Different From Better Than Your RDBMS
6/37
DEVELOPER : LICENSEBSD-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 alicenseUpgrade hardware without paying for license costUnlike commercial RDBMSs where licenses come in theway of development, QA, and hardware upgrades.
7/27/2019 Postgres is Different From Better Than Your RDBMS
7/37
DEVELOPER : RELIABILITYACID compliant
Constraints (Primary Key, Foreign Key, CHECK)Data-page checksums to detect corruption
7/27/2019 Postgres is Different From Better Than Your RDBMS
8/37
DEVELOPER : SECURITYPer-object GRANT/REVOKE permissions
Per-column GRANT/REVOKE permissionsSSL connectionsLDAP and RADIUS authentication
7/27/2019 Postgres is Different From Better Than Your RDBMS
9/37
DEVELOPER : FEATURESPostgres is a Platform
Vast feature set... and ever-expanding
Postgres Feature Matrix
http://www.postgresql.org/about/featurematrix/
http://www.postgresql.org/about/featurematrix/http://www.postgresql.org/about/featurematrix/7/27/2019 Postgres is Different From Better Than Your RDBMS
10/37
DEVELOPER : FEATURESCommon Table Expressions (CTEs)
Similar to Macro in programming languagesSupports recursive evaluation (alternative to Oracle'sCONNECT BY)
7/27/2019 Postgres is Different From Better Than Your RDBMS
11/37
DEVELOPER : FEATURES : DATA TYPESMany advanced data types come builtin
Full List of Builtin Data Types
http://www.postgresql.org/docs/9.3/static/datatype.html
http://www.postgresql.org/docs/9.3/static/datatype.htmlhttp://www.postgresql.org/docs/9.3/static/datatype.html7/27/2019 Postgres is Different From Better Than Your RDBMS
12/37
DEVELOPER : FEATURES : DATA TYPESDoes not have/need NVARCHAR data type
The CHAR/VARCHAR/TEXT types are capable of storingUnicode data
7/27/2019 Postgres is Different From Better Than Your RDBMS
13/37
DEVELOPER : FEATURES : DATA TYPESBoolean (a first-class data type)
Bit (and Bit strings)MoneyBytea (binary data)Interval (difference between TIMESTAMPs)
Enumerated TypesGeometry Types (Point, Line Segment, Polygon, ...)Network Address (inet, cidr, macaddr)
7/27/2019 Postgres is Different From Better Than Your RDBMS
14/37
DEVELOPER : FEATURES : DATA TYPESRange Types (tsrange, daterange, int4range, ...)
Composite typesBuiltin multi-dimensional arrays
Automatically defines array type of builtin and user-defineddata types
7/27/2019 Postgres is Different From Better Than Your RDBMS
15/37
DEVELOPER : FEATURES : DATA TYPEShstore
JSONXML
7/27/2019 Postgres is Different From Better Than Your RDBMS
16/37
DEVELOPER : FEATURESStreaming Replication
Hot StandbyPer-transaction synchronous replicationTrue serializable transactionsLISTEN/NOTIFY
TriggersExclusion constraintsWindow FunctionsFunction overloadingOperator overloading
Full-text searchLarge Objects up to 4TBMaterialized views
7/27/2019 Postgres is Different From Better Than Your RDBMS
17/37
DEVELOPER : FEATURESCreate procedures in various programming languages
PL/pgsqlPL/perlPL/tclPL/java
PL/v8 - JavaScript
7/27/2019 Postgres is Different From Better Than Your RDBMS
18/37
DEVELOPER : FEATURE/PERFORMANCETOAST
The Oversized Attribute Storage Technique
Automatic out-of-line storage and automatic compression
7/27/2019 Postgres is Different From Better Than Your RDBMS
19/37
DEVELOPER : PERFORMANCECost-based optimizer
Index-only scansSynchronized seq-scansTable partitioningUnlogged tables
7/27/2019 Postgres is Different From Better Than Your RDBMS
20/37
DEVELOPER : PERFORMANCEPartial indexes
Many types of indexesBTreeHashGin
GistKNNSP-Gist
7/27/2019 Postgres is Different From Better Than Your RDBMS
21/37
DEVELOPER : PERFORMANCETypes of join-strategies
Nested-loop joinsHash joinsSort-Merge joinsBitmap-index scan; Bitmap-And/Or joins (in-memory)
Can use multiple indexes of a table in the same scanSemi joinsAnti joins
7/27/2019 Postgres is Different From Better Than Your RDBMS
22/37
DEVELOPER : PERFORMANCEFaster 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
http://thebuild.com/presentations/pg-as-nosql-pgday-fosdem-2013.pdfhttp://thebuild.com/presentations/pg-as-nosql-pgday-fosdem-2013.pdf7/27/2019 Postgres is Different From Better Than Your RDBMS
23/37
DEVELOPER : DIAGNOSTICSPer-function statistics
Performance Viewspg_stat_activitypg_lockspg_stat_*
pg_stat_all_tablespg_stat_all_indexes...
7/27/2019 Postgres is Different From Better Than Your RDBMS
24/37
DEVELOPER : DIAGNOSTICSLogging Options
log_min_duration_statementlog_temp_files
DTrace/SystemTap support
Scripts to record and diagnose performance issues
7/27/2019 Postgres is Different From Better Than Your RDBMS
25/37
DEVELOPER : EXTENSIBILITYHighly Extensible
Create Your OwnData TypesOperatorsIndex Types
create extension
Check outForeign Data WrapperForeign Tables
PGXN.org
http://localhost:8000/PGXN.org7/27/2019 Postgres is Different From Better Than Your RDBMS
26/37
DEVELOPER : EXTENSIBILITYExamples
PostGIS
PostGIS adds support for geographic objects to thePostgreSQL object-relational database.
PostgreSQL-HLL
A PostgreSQL extension adding HyperLogLog datastructures as a native data type
7/27/2019 Postgres is Different From Better Than Your RDBMS
27/37
MANAGER'S PERSPECTIVEAcquisition Cost (License)
Future ProofVendors/Providers (Companies who can help)Maintenance Cost (Support)Buy-in From Upper Management
7/27/2019 Postgres is Different From Better Than Your RDBMS
28/37
7/27/2019 Postgres is Different From Better Than Your RDBMS
29/37
MANAGER : ACQUISITION COSTFREE
Save Money $$$Higher Profit MarginsA Leg Up On The Competition
7/27/2019 Postgres is Different From Better Than Your RDBMS
30/37
MANAGER : ACQUISITION COSTBSD-like License
Liberal than/Very different from GPL.Install, use/develop and deploy full feature-set without alicenseUpgrade hardware without paying for license cost
Unlike commercial RDBMSs where licenses come in theway of development, QA, and hardware upgrades.
7/27/2019 Postgres is Different From Better Than Your RDBMS
31/37
MANAGER : FUTURE PROOFCommunity-driven
No single commercial entity controls it (unlike MySQL)Will be always free (cost and project management)
7/27/2019 Postgres is Different From Better Than Your RDBMS
32/37
MANAGER : FUTURE PROOFEver-increasing resource-pool; developers and DBAs
Compare growth in job requirements
7/27/2019 Postgres is Different From Better Than Your RDBMS
33/37
MANAGER : VENDORS/PROVIDERSMany top-quality vendors
EDB (EnterpriseDB)PG Experts2nd QuadrantOmniTI
Command PromptMany smaller consulting teams/individuals
7/27/2019 Postgres is Different From Better Than Your RDBMS
34/37
MANAGER : MAINTENANCE COST24/7 Support available
Very affordable support contractsFor e.g. EDB charges per-socket (unlike Oracle, thatcharges per CPU)
7/27/2019 Postgres is Different From Better Than Your RDBMS
35/37
MANAGER : MAINTENANCE COSTConsulting
Remote-DBADatabase Health ChecksTraining
For DevelopersFor DBAs
7/27/2019 Postgres is Different From Better Than Your RDBMS
36/37
MANAGER : UPPER MANAGEMENT BUY-INShow them the last few slides :)
7/27/2019 Postgres is Different From Better Than Your RDBMS
37/37
THANK YOU