Kategorie: MySQL

Oftmals muss man eindeutig identifizierbare Strings (Zeichenketten, Text) durch einen neuen String ersetzen, die in einer MySQL-Tabellenspalte liegen. Ein harter Weg wäre, alle Werte mit PHP auslesen, in PHP mit str_replace() ersetzen und wieder in die MySQL Datenbank zu schreiben – Gott sei Dank bietet MySQL hier direkt eine REPLACE()-Funktion in den Stringfunktionen an. weiterlesen…

Ob WHERE-Abfragen nun Großkleinschreibung beachten, kann man mit der Kollation festlegen, in der die Datenbank und die Tabellenfelder definiert werden. Die Kollation utf8_bin ist case sensitive. Für ein case insensitives Datenbankdesign kann man die Kollation utf8_general_ci verwenden, wobei das “ci” für case insensitive steht. Mit utf8_bin sind aber trotzdem ist case insensitive Abfragen möglich, man muss nur die Kollation in der Abfrage mitlifern:

COLLATE utf8_general_ci

weiterlesen…

Lerne in diesem Artikel die ersten Schritte mit einer MySQL Datenbank umzugehen. weiterlesen…

Es sind nur ein paar Handgriffe, die Welten bewegen. Ich hatte eine SQL Abfrage mit ein paar Joins, die bei steigender Anzahl von Datensätzen bis zu 5 Minuten dauerte. Das konnte so natürlich nicht weitergehen, also hab ich kurz eine Relation mittels Fremdschlüssel in der Datenbank-Struktur realisiert und die Abfrage dauerte von nun an 2 Sekunden – Wahnsinn! Das Problem mit der Geschwindigkeit hatte ich übrigens auch bei jedem XT Commerce Shop mit mehreren Hundert oder Tausend Artikeln, bei dem DirectUrl für suchmaschinenfreundliche URLs installiert ist. Das Problem ist, das DirectUrl die Tabelle mit den Alias-URLs  bei jeder Änderung des Produktkatalogs, der Kategorien und der Content Seiten neu erstellt. In Bezug auf das Bearbeiten von Produkten und Kategorien können wir das Laden von 5 Minuten auf 2 Sekunden verringern.  Die folgende MySQL Code zeigt die modifizierte Tabellenstruktur mit Indizes für die DirectUrl-Alias-Tabelle. weiterlesen…