Wann immer wir neue Tabellen in einer MySQL Datenbank anlegen, stellt sich die Frage, welche Spalten indiziert werden müssen. Für gewöhnlich genügt ein einspaltiger Index. In manchen Fällen kann aber mit einem mehrspaltigen Index die Performance verbessert werden. Welche Vor- und Nachteile solche Indizes mit sich bringen, werde ich euch hier erläutern. Sinn und Zweck mehrspaltiger Indizes in MySQL weiterlesen
Schlagwort: Datenbank
Für meine Betrachtungen zu Datenbanken, gehe ich für gewöhnlich von MySQL aus. Die hier erwähnten Mechanismen lassen sich aber auch auf andere SQL-Dialekte übertragen.
Was ist der Unterschied zwischen Active Record und Data Mapper?
Früher oder später geht es in jeder Webapplikation darum Daten zu speichern. In einer nach dem MVC-Prinzip orientierten Anwendung wird die ein oder andere Form eines ORM zum Einsatz kommen. Solche ORM (z. B. Doctrine, Eloquent) folgen entweder dem Paradigma des Active Record oder das dem Data Mapper. In diesem Artikel wird es um die Unterschiede dieser beiden gehen. Was ist der Unterschied zwischen Active Record und Data Mapper? weiterlesen
MySQL – Vor- und Nachteile gesperrter Tabellen (table lock)
MySQL bietet die Möglichkeit des exklusiven Tabellenzugriffs für eine bestehende Verbindung. Die Tabelle wird also für andere Verbindungen gesperrt. In diesem Beitrag werde ich die dafür notwendigen SQL-Befehle sowie die Vor- und Nachteile gesperrter Tabellen beleuchten. MySQL – Vor- und Nachteile gesperrter Tabellen (table lock) weiterlesen
MySQL – Wie bekomme ich möglichst effizient und schnell viele Daten in die Datenbank?
Schreibzugriffe in der Datenbank sind immer kostenintensiv, das hat jeder schon mehrfach gehört. Der Ausweg beim INSERT ist denkbar einfach: Mehrere Datensätze pro Anfrage abschicken. Aber wo ist da die Grenze? Und wie genau geht das bei Updates? In diesem Artikel werde ich mich genau damit befassen. MySQL – Wie bekomme ich möglichst effizient und schnell viele Daten in die Datenbank? weiterlesen
Wie sollte ich meine Daten speichern? Ein Vergleich von Datenbank, Solr, …
Als Entwickler stehen wir immer wieder vor der Frage, wohin nur mit den Daten? Zur Auswahl stehen da eine ganze Reihe von Möglichkeiten, zum Beispiel Volltext-Suchmaschinen wie Lucene mit seinen Derivaten Elastic Search und Apache Solr, oder die Datenbankvarianten SQL, NoSQL und GraphDB. Im folgenden möchte ich eine Entscheidungshilfe zu diesem Thema geben. Wie sollte ich meine Daten speichern? Ein Vergleich von Datenbank, Solr, … weiterlesen
MySQL – Warum ist mein Query so langsam?
Wir alle kennen das: Kaum ist das neue Update auf den Produktivservern, wird der Sysadmin panisch und erzählt was von zu hoher Last auf der Datenbank. Was nun? Kaffee holen und zusehen wie alles zur Hölle fährt, wäre eine Möglichkeit – in diesem Artikel soll es um eine weitere gehen. MySQL – Warum ist mein Query so langsam? weiterlesen
MySQL – To JOIN or not to JOIN
Als PHP Entwickler ist man ständig damit beschäftigt etwas aus einer Datenbank zu laden. Dabei kommen auch die ominösen Joins zum Einsatz, von dem alle immer erzählen sie wären böse. In diesem Artikel will ich mich genau mit diesem Vorurteil beschäftigen. MySQL – To JOIN or not to JOIN weiterlesen
Apache Solr – DataImportHandler – Feinheiten
Nachdem ich in einem früheren Beitrag bereits die Grundladen erörtert habe, soll es hier nun um die Feinheiten und Ausnahmen beim Datenimport in den Apache Solr gehen. Apache Solr – DataImportHandler – Feinheiten weiterlesen
Apache Solr – DataImportHandler – Import von MySql
Wer eine eigene Apache Solr Instanz aufsetzt, sieht sich recht bald mit der Frage konfrontiert wie denn nun die Daten in den Solr kommen sollen. Da gäbe es zunächst die Möglichkeit das per Skript zu erledigen und die fertigen Datensätze an die /update API zu schicken. Solr bietet aber auch die Option über einen DataImportHandler den Datenimport direkt zu erledigen.
Wie das genau von statten geht, soll in diesem Beitrag erläutert werden. Apache Solr – DataImportHandler – Import von MySql weiterlesen
PHP UnitTests mit DB-Simulation
Testen ohne Datenbank ist zwar schon ganz nützlich, aber viele Funktionen basieren dann doch stark auf DB-Daten. Mocken wird oft sehr aufwendig wenn wir mit Frameworks arbeiten, die die Models für uns automatisch laden. Und es soll ja auch Funktionen geben, die erst ab 100 Datensätzen richtig warm laufen. Das will natürlich niemand mit einem Mock abbilden.
In diesem Beitrag beschäftigen wir uns also mit der Simulation einer Datenbank.