Software-update: PostgreSQL 16

PostgreSQL logo (75 pix) Versie 16 van PostgreSQL is uitgekomen. Dit populaire 'opensource relational database management system' draait op een groot aantal besturingssystemen en is daardoor uitstekend inzetbaar in diverse omgevingen. Het is een afgeleide van Postgres, wat op zijn beurt weer is geïnspireerd op Ingres, nadat de hoofdontwikkelaar daarvan voor zichzelf is begonnen en deze database van opensource closedsource werd. Uitgebreide informatie over de veranderingen in versie 16 kan op deze pagina worden gevonden. De complete changelog staat hier, dit zijn in het kort de belangrijkste verbeteringen:

PostgreSQL 16 contains many new features and enhancements, including:
  • Allow parallelization of FULL and internal right OUTER hash joins
  • Allow logical replication from standby servers
  • Allow logical replication subscribers to apply large transactions in parallel
  • Allow monitoring of I/O statistics using the new pg_stat_io view
  • Add SQL/JSON constructors and identity functions
  • Improve performance of vacuum freezing
  • Add support for regular expression matching of user and database names in pg_hba.conf, and user names in pg_ident.conf

PostgreSQL

Versienummer 16
Releasestatus Final
Besturingssystemen Linux, BSD, macOS, Solaris, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website PostgreSQL
Download https://www.postgresql.org/download/
Licentietype Voorwaarden (GNU/BSD/etc.)

Reacties (10)

10
10
5
1
0
5
Wijzig sortering
Lach me niet uit, maar ik ben deze week toevallig te weten gekomen dat PostgreSQL een ALTER INDEX ondersteunt. Ik dacht dat enkel de Oracle en SQL Server dat ondersteunden.

Ik ben zelf namelijk een MariaDB fan, maar ik heb een paar tabellen van >60GB met ~200M records en moest daar overlaatst een index bijzetten. Op zich niet erg, tot ze 5 min na de aanmaak van die index af komen met "oh, er moest nog een veld bij".

Ik ga toch eens een 2de omgeving opzetten om wat te experimenteren...
Zijn er nog features die echt super zijn aan PostgreSQL?
Ik heb het in het verleden enkel nog gebruikt voor GIS data, dus die wist ik al.
Even een paar items die mij direct te binnen schieten:
  • Vrijwel ieder statement kun je binnen een transactie uitvoeren, zelfs TRUNCATE of een DROP TABLE. En uiteraard ook weer terugrollen in het geval van issues
  • Partial indexes, waarbij je in de WHERE conditie van de index opgeeft wat je wel of niet wilt indexeren
  • Een partial index werkt uiteraard ook met een unique index.
  • Range data types, je kunt niet meer zonder wanneer je hier eenmaal mee aan de slag gaat
  • Data types zijn toch al een stuk uitgebreider dan MySQL/MariaDB. En alles wat mist, maak je zelf aan: CREATE TYPE
  • Extension, gebruik ze dagelijks. Voornamelijk pg_trgm voor speciale indexen, btree_gin om GIN indexen ook BTREE compatibel te maken, pg_stat_statements als query logger en PostgreSQL_fdw voor de foreign tables. En er is nog veel meer.
  • Stored functions en procedures, uitermate handig. Lijkt op pl/sql uit Oracle
Overigens werk ik al vele jaren niet meer met MySQL/MariaDB, weet dus niet goed wat deze de afgelopen jaren hebben toegevoegd.
Heeft MariaDB al ondersteuning voor partial indexes, of functional indexes?
Ik zou btw niet zo snel ALTER INDEX gebruiken gezien dat niet concurrent kan wat wel met een create/drop index kan. Dus geen locking als de index aangemaakt wordt.
Vind zelf de nieuwe JSON syntax toch wel de beste verbetering.
Soms ontkom je niet aan json gebruiken ergens (i know it is ugly).
Nu hoef ik weer een paar rare hacks minder uit te halen.
Wat is een goede beheertool voor PostgreSQL?
Ik gebruik nu DBeaver CE en ik vind die niet heel handig.
Je zou naar pgadmin kunnen kijken.
Oei, daar verschillen de meningen over...

Als er iets is wat ik persoonlijk zou vermijden, dan is het wel pgAdmin!
"goed" ligt aan jouw persoonlijke eisen. Welke zijn dat en welke tool voldoet daar aan?

psql is onmisbaar, die zul je altijd wel een keer nodig hebben. Wordt vrijwel altijd standaard geïnstalleerd wanneer de server wordt geïnstalleerd. Leer hier in elk geval mee omgaan.

Zelf ben ik zeer te spreken over DataGrip en Navicat. DataGrip is vooral handig wanneer je met een team aan software werkt, in projecten, source control, etc. Navicat heeft die ondersteuning niet/minder, dat is ook de reden dat ik daar eigenlijk geen gebruik meer van maak.

DBeaver heb ik wel eens mee gewerkt, maar is mij nooit goed bevallen. Kan ook liggen aan instellingen die niet goed/volledig waren. Zo gaf DBeaver al een foutmelding geeft wanneer ik een lege regel in m'n SQL opnam. En probeer maar eens een functie te schrijven zonder dat je whitespace in de functie zet.

Een overzicht van tools kun je op de wiki van PostgreSQL vinden.

Voor ons is DataGrip met afstand de beste tool, vanwege de project integratie.
Met dank voor je uitgebreide reactie.
Ik ga DataGrip eens bekijken
Een jaar geleden ongeveer ben ik overgestapt van Oracle naar PostgreSQL. Eigenlijk stond ik op het punt om de Oracle DB te upgraden, maar na alle 'kleine lettertjes' in de Oracle voorwaarden durfde ik het niet aan en was het een goed moment om eindelijk PostgreSQL te proberen. Bevalt me uitstekend! Sommige commando's gaan net even anders, user management en privileges ook, maar dat went heel snel.

Ik heb het idee dat de server ook een lagere belasting is en vooral veel sneller start en stopt. Export, backup etc vind ik makkelijker. En ook disk gebruik is anders. Bij Oracle groeide dat alleen maar door, telkens weer een nieuwe datafile, ook met lege tabellen. Postgres heeft daar de 'stofzuiger' voor waardoor disk gebruik ook weer terugloopt als tabellen worden geleegd. Ik ben geen Oracle dba, dus wellicht heb ik daar een paar mogelijkheden gemist, maar voor iedereen die dat ook niet is, zou ik zeker Postgresql aanbevelen boven Oracle.

Als client gebruik ik DBeaver community edition, werkt ook heel erg prettig (met vrijwel alle db's)

Op dit item kan niet meer gereageerd worden.