Samstag, 15. November 2014

[Datenbanken] Neuigkeiten und Aussichten

Da wir bei uns im Büro mal wieder Nominatim von OpenStreetMaps aufsetzen müssen, Update des Server ist wegen fehlendem Speicherplatz nicht möglich, hatte ich mich mal wieder etwas näher mit Nominatim sowie der verwendeten Datenbank PostgreSQL beschäftigt.

PostgreSQL ist für mich aktuell das bessere MySQL.
Seit der Übernahme von MySQL hat Oracle angefangen MySQLs Entwicklungsprozess intransparenter zu gestalten.
Das Problem hier ist, dass einige wichtige Tests von Oracle nicht mehr in den Entwicklungszweig von MySQL eingepflegt werden was die QS natürlich erschwert.
Aussicht von Oracle ist natürlich klar warum man das macht.
Gerade Oracle hat mit seiner eigenen kommerzielle DB einen großen Konkurrenten mit MySQL nun im Haus.
Und gerade hier versucht man natürlich auch die kostenlose Alternative nur noch teuer gegen Geld anzubieten.
Deshalb sollte man sich gut überlegen ob man noch auf MySQL setzen möchte.
Früher oder später dürfte auch MySQL verschwinden.

Einen Fork mit dem Namen "MariaDB" gibt es schon seit einige Jahren, der dieses Problem lösen möchte.
Ebenfalls bietet er Features die die freie MySQL Variante nicht besitzt.
Es wurden auch viele Optimierungen und Verbesserungen sowie neue Tabellen Engines hinzugefügt.
Dies spricht also sehr für MariaDB und gegen MySQL.
Lediglich die Popularität von MySQL dürfte noch einige Jahre dafür sorgen, dass MySQL bevorzugt wird.

Aktuell liebäugle ich ja mit PostgreSQL.
Dabei handelt es sich ähnlich wie bei MySQL und MariaDB um eine recht freie Datenbank.
Diese befindest sich aktuell noch in der Version 9.3
Version 9.4 ist bereits im Betastadium und dürfte in den nächen 1-2 Monaten auch soweit sein.

Zwar fehlen noch die ein oder anderen Möglichkeiten bei PostgreSQL aber insgesamt ist die aktuelle Version schon von Features her genauso gut wie MySQL, MariaDB oder sogar kommerzielle Datenbanken.

PostgreSQL zeichnet sich durch gute erweiterbarkeit aus.
Man kann in eigene Funktionen sowie Datentypen in PostgreSQL einpflegen.
Projekte wie Nominatim wäre mit MySQL oder anderen Datenbanken nicht so einfach und eben frei umsetzbar.
Durch die Extensions kann PostgreSQL mit PostGIS ebend auch mit Geopositionen(Latitude/Longitude) arbeiten und rechnen.

Diese Features machen PostgreSQL für mich interessant.
Aktuell habe ich mir auch einige Bücher zu PostgreSQL besorgt.
Ebenfalls habe ich mir auch mal das Buch "SQL Performance Explained" gekauft.

In den PostgreSQL Bücher geht es um alle möglichen Themenbereiche.
Von der Installation, Kompilation sowie der Konfiguration der Instanzen bis hier zur Absicherund und auch Datensicherung.

Das letzte Buch behandelt im groben die Verwendung von Indizies.
Auch geht sie, ausgehend von Oracle Datenbanken aber auch gültig für andere Datenbanken, in die internen Verarbeitungen der Datenbanken Indizies ein.
Somit kann man auch besser verstehen wie und warum einige Abfragen mit Indizies mal gut und mal schlecht laufen.
Das Buch fängt aber schon sehr technisch an.
Man sollte sich mit Binären Bäumen und auch den Baum Strukturen auskennen.
Dies macht sich schon im ersten Kapitel bezahlt.

Insgesamt haben sich die Bücher schon gut bezahlt gemacht, da ich nun auch weiß wie ich aus der Default Config, die Debian verwendet, noch mehr Performance rausholen kann.
Ich bin nur verwundert warum gerade für Datenbankserver wie PostgreSQL so geringe Datenbank Einstellungen verwendet werden.
Hier kann die DB nicht mal im Ansatz ihre Stärken ausspielen.
Auf der anderen Seite muss sich dann aber der Administrator auch mal mit dem System auseinander setzen.
Dies ist gerade in der heutigen Zeit doch zu begrüßen.

Keine Kommentare: