Some errors are really hard to find: They appear only sometimes or only on live systems or within complex source that can't run manually using a debugger. Adding debug output might help, but might also be confusing as the DBI error code 4 "statement contains no result" does.
Suchergebnisse für „mySQL“
Zur richtigen Nutzung von MySQL-Indices habe ich bereits früher schon gebloggt, aber nicht alle Problemstellungen lassen sich so einfach beantworten. Im konkreten Fall ging es um zwei WHERE-Bedingungen: email LIKE '%@somedomain.de' im Vergleich zu SUBSTRING_INDEX(email, '\@', -1) = 'somedomain.de'. Das Ergebnis hat mich ein wenig überrascht.
Jede neue Datenbank erfordert einen neuen Lernschritt: Befehle und teilweise auch die Syntax sind trotz aller Standartisierung von SQL über ein klein wenig anders, aber im Allgemeinen findet man sich schnell zurecht - zumindest, wenn der Umstieg von einer SQL-Datenbank auf eine andere erfolgt. Bei NoSQL reicht es dagegen nicht aus, einfach ein paar neue Befehle zu lernen.
Es gibt einen ganz sicheren Weg, die ersten NoSQL-Versuche in einem Fiasko enden zu lassen: MongoDB als 1:1 Ersatz für MySQL verwenden. Der Wechsel zu einer NoSQL-Datenbank ist nicht einfach nur ein Wechsel des Datenspeichers, sondern erfordert auch eine grundlegend neue Arbeits- und Denkweise.
Mit MySQL und MongoDB stehen sich die wohl jeweils am weitesten verbreiteten Vertreter ihrer Datenbankgattung gegenüber. Beide stehen für jeweils ein komplett gegensätzliches Datenhaltungskonzept und haben trotzdem überraschend viele Gemeinsamkeiten.
NoSQL ist eine ebenso irreführende Bezeichnung für ein Datenbankkonzept, wie SQL. Mit ein wenig Hilfe von Postgres kann MongoDB sogar mit SQL-Befehlen angesprochen werden. Tatsächlich bezieht sich das NoSQL-Konzept eher auf die Art der Datenhaltung: Die von RDBMS bekannten Datensätze existieren nach wie vor, folgen aber keiner festen Form mehr. Statt dessen beinhaltet jeder Datensatz ein komplettes Dokument.
SQL wird gerne als Artbezeichnung für Datenbanken verwendet, dabei ist es nur eine genormte Sprache, in der mit Datenbanken kommuniziert werden kann. Zutreffender wäre eigentlich die weitaus weniger verbreitete Bezeichnung RDBMS für Relational Database Management System.
Vor rund zwei Jahren habe ich mir die Frage gestellt, ob eine der neumodischen NoSQL Datenbanken wirklich schon ein praxistauglicher Ersatz für die mit jeweils ganz eigenen Problemen behafteten bekannten SQL-Datenbanken sein kann. Heute kann ich diese Frage ganz klar mit JA beantworten und möchte mit dieser Mini-Serie einen Weg zum Umstieg aufzeigen.
Von Zeit zu Zeit brauche ich Herausforderungen. Gerade steht wieder eine an und zwar ein High-Performance-System, das mit großen Datenmengen arbeiten soll. Einer der Knackpunkte ist die Gruppierung von zur Verarbeitung anstehenden Datensätzen einer MySQL-Datenbank, doch ich wünschte, es wäre eine MongoDB, die nativ Arrays und MapReduce unterstützt.
Here are three SQL queries and one simple challenge: Order them by speed assuming that city has an index.
1. SELECT city, SUM(inhabitants) FROM population GROUP BY city
2. SELECT city, SUM(inhabitants) FROM population GROUP BY city ORDER BY city
3. SELECT city, SUM(inhabitants) FROM population GROUP BY city ORDER BY city DESC