Software-update: PostgreSQL 8.1

Vandaag heeft de PostgreSQL Global Development Group versie 8.1 van de populaire open-source database PostgreSQL uitgebracht. Deze ORDBMS (Object Relational Database Management System) draait op veel verschillende besturingssystemen waardoor het uitstekend inzetbaar is in verschillende omgevingen. De release notes zijn op deze pagina volledig na te lezen. De volgende aankondiging wordt meegegeven:

PostgreSQL 8.1 contains more than 120 new features and enhancements contributed by almost 200 developers. Among them are:

New Advanced Database Features:
  • Roles: PostgreSQL now supports database roles, which simplify the management of large numbers of users with complex overlapping database rights.
  • IN/OUT Parameters: PostgreSQL functions now support IN, OUT and INOUT parameters, which substantially improves support of complex business logic for J2EE and .NET applications.
  • Two-Phase Commit (2PC): long in demand for WAN applications and heterogeneous data centers using PostgreSQL, this feature allows ACID-compliant transactions across widely separated servers.
Performance Enhancements:
  • Improved Multiprocessor (SMP) Performance: the buffer manager for 8.1 has been enhanced to scale almost linearly with the number of processors, leading to significant performance gains on 8-way, 16-way, dual-core, and multi-core CPU servers.
  • Bitmap Scan: indexes will be dynamically converted to bitmaps in memory when appropriate, giving up to twenty times faster index performance on complex queries against very large tables. This also helps simplify database management by greatly reducing the need for multi-column indexes.
  • Table Partitioning: the query planner is now able to avoid scanning whole sections of a large table using a technique known as Constraint Exclusion. Similar to the Table Partitioning found in other database management systems, this feature improves both performance and data management for multi-gigabyte tables.
  • Shared Row Locking: PostgreSQL's "better than row-level locking" now supports even higher levels of concurrency through the addition of shared row locks for foreign keys. Shared locks will improve insert and update performance on many high-volume OLTP applications.
Additional Features:
  • GiST: PostgreSQL's Generalised Search Tree (GiST) pluggable indexing mechanism has improved to support the high-speed concurrency, recoverability and update performance previously enjoyed only using B-Tree indexes. GiST is the backbone of PostgreSQL's full-text indexing (TSearch2), geospatial (GIS) and tree-structure indexing. With this enhancement, complex data types will perform well even on the largest high-availability applications.
  • COPY Refactoring: COPY has been refactored for up to 30% faster processing of bulk load data. Along with CSV load improvements, this makes loading large databases into PostgreSQL faster than ever.
  • 64-bit Shared Memory: the buffer manager has been enhanced to utilize up to two terabytes of RAM on 64-bit platforms, preparing PostgreSQL for the high-memory servers of the future.
  • Integrated Autovacuum: PostgreSQL's database maintenance daemon has been improved and integrated into the main server program, making PostgreSQL servers simpler to set up and administer.
  • Faster Aggregates: aggregate functions have been improved to make reporting queries even faster. The PostgreSQL developers both rewritten memory management for aggregates and added indexing optimizations for MIN() and MAX().
  • Adminstration Functions: new functions have been added for obtaining server information and performing basic DBA tasks from the PSQL command line.
  • Compatibility Functions: lastval(), greatest() and least() functions have been added, making porting applications from MySQL and Oracle easier.
[break]De volgende downloads staan klaar:
* Source tarball (FTP - BitTorrent)
* Fedora Core 4 (FTP - BitTorrent)
* Fedora Core 4 x64 (FTP - BitTorrent)
* Windows (FTP - BitTorrent)
Versienummer 8.1
Besturingssystemen Windows 9x, Windows NT, Windows 2000, Linux, BSD, Windows XP, macOS, Solaris, UNIX, Windows Server 2003
Website PostgreSQL
Download http://www.postgresql.org/ftp/
Licentietype Voorwaarden (GNU/BSD/etc.)

Reacties (9)

9
9
6
3
0
2
Wijzig sortering
Beetje verbaasd dat een aantal van die features er nu pas inzitten, maar wel zeer goed dat het gebeurd is.
Welke dan? Met uitzondering van Autovacuum en 2PC zijn er weinig veranderingen die als "must have" gequalificeerd kunnen worden.
Roles is een 'must have'. Table partitioning is ERG handig. En 'administring functions' is ook heel erg welkom wat mij betreft. Dit zijn goede stappen om PostgreSQL te kunnen gebruiken in het bedrijfsleven. Ik hoop (en heb er ook wel vertrouwen in) dat de PostgreSQL ontwikkelaars hiermee doorgaan.
Overigens een grappig detail: de deze week uitgebrachte SQL Server heeft ook net voor het eerst (een serieuze) table partitioning. Zit PostgreSQL Microsoft op de hielen?
Het zou best wel eens kunnen zijn dat PostgreSQL veel aan populariteit gaat winnen door de vrijere licentievoorwaarden(BSD) dan die van MySQL.
Ik meen onlangs ergens gelezen te hebben dat op het gebied van open source databases PostgreSQL iets van 18% van de markt in handen had en MySQL nog wel de grootste speler was.
Maar naar mijn mening is dat al een best hoog marktaandeel.
Je krijgt veel meer high-end features in PostgreSQL dan in MySQL, die ook te vinden zijn in enterprise mission critical databases zoals die van Oracle.
Enige drawback daaraan is wel dat PostgreSQL zonder optimalisaties trager is dan MySQL, maar tenzij je echt astronomisch gigantische databases moet beheren krijg je daarvoor in ruil wel een vrijere licentie en high-end features.
Daarnaast is PostgreSQL native(zonder aanpassingen) ook volledig compliant aan de SQL standaard, bij MySQL is dit nog niet het geval, maar het is wel aanpasbaar zodat het enigzins(maar nog niet volledig dacht ik) SQL-standaard compliant is.
Hou nou eens op met die onzin.
De reden dat MySQL (nog steeds) veel populairder is dan PostgreSQL komt voornamelijk dat veel (web) programmas alleen MySQL support hebben (voornaamste excuus is omdat ze "geoptimaliseerde queries" gebruiken, lees: hacks op bepaalde dingen uit te voeren die normaal gesproken via SQL92 compliant queries gedaan zouden kunnen worden).
PostgreSQL is echt niet (veel) trager dan MySQL mbt kleine en minder grote tabellen.
En PostgreSQL is niet helemaal SQL92 (of SQL2003) compliant. Wel veel meer dan MySQL, maar nog steeds niet volledig. Ten again, er is bijna geen enkele DBMS die volledig compliant is.
Mijn ervaring (van de afgelopen dagen) is dat MySQL veel voorspelbaarder is. Zo weigerde PG een index te gebruiken voor een SELECT COUNT(*) query, met een sequential scan van een halve minuut tot gevolg. MySQL deed het meteen goed.

Voor het analyseren van log data van enkele honderden megabytes is MySQL de aangewezen keus. Er is maar een writer, en vele readers. Door het compactere data formaat van MySQL ISAM tabellen kan hij de onvermijdelijke scans veel sneller uitvoeren dan PG. Deze winst ben je trouwens kwijt als je InnoDB tabellen gebruikt - die zijn groter. MySQL was ongeveer 40% sneller voor deze specifieke toepassing.

Web sites hebben ook de neiging om single-write multi-read te zijn, vandaar de populariteit. Verder is het opzetten van een client connectie in MySQL ongekend snel. Dat is voor websites erg handig, omdat die vaak per page een nieuwe connectie moeten maken. Ook features als replication en full-text indexing zitten al jaren in MySQL, terwijl die in PG nog maar relatief kort geleden zijn geimplementeerd.

PostgreSQL komt veel beter tot zijn recht in multi-writer multi-reader omgevingen, omdat dan locking en transactie management kritiek voor de performance worden. Die dingen zijn van oudsher in PG beter geregeld. PG heeft een heel andere prioriteitenlijst gebruikt. Zo waren transacties en subqueries al vanaf het begin aanwezig, terwijl die in MySQL pas recent in versie 4 en 5 zijn ingevoerd.

Je moet gewoon de juiste tool kiezen voor je taak. Voor een bankier applicatie zou ik bijvoorbeeld wel meteen naar PG grijpen. Op asfalt rijdt een personenauto sneller dan een hummer, maar in de modder komt die laatste sneller vooruit.

(edit) Wat overigens MySQL erg populair hield is dat je geen onderhoud hoeft te plegen. Op PostgreSQL moet je regelmatig stofzuigen (vacuum), op MySQL is dat optioneel en meestal overbodig. Zo te zien is er iets bij gekomen om dat te verbeteren, auto-vacuum.
Vergeet vooral ook de eenvoud van het werken met MySQL niet...hoewel dat inmiddels wel iets minder is geworden...
Maar vooral de 3.23.x series hebben de populatiteit onder de website bouwers enorm vergroot aangezien je niet overspoelt werd door voor een leek onbegrijpbare opties die in de meeste gevallen meer verwarrend werken dan een feature zijn voor die groep mensen.

Voor professionele developers echter biedt Postgres al jaren een mooi compleet pakket aan features binnen een mooie open licensie...MySQL hobbelt er op dat gebied achter aan en komt nu eigenlijk pas de laatste 2 jaar met flinke uitbreidingen die er een volwaardig rdbms van maken.
Het zou best wel eens kunnen zijn dat PostgreSQL veel aan populariteit gaat winnen door de vrijere licentievoorwaarden(BSD) dan die van MySQL.
Alleen voor closed source apps is dat licentieverschil belangrijk. Dus ik zie niet direct waar die veel grotere populariteit vandaan moet komen.
Een meukpost vol neplinkjes, maar dat is zeg ik alleen maar omdat elk van de genoemde features erg interessant is (en ik er meer over wil lezen i.c.m. dit DBMS) en laat zien dat PostgreSQL qua ontwikkeling op het goede pad zit.

Op dit item kan niet meer gereageerd worden.