Sinn und Zweck mehrspaltiger Indizes in MySQL

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

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

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.

PHP UnitTests mit DB-Simulation weiterlesen