postgres is different from better than your rdbms

Upload: bob-reece

Post on 14-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.html
  • 7/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.pdf
  • 7/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.org
  • 7/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