Tolles aus der MySQL-Trickkiste

Teil 4: MySQL und phpMyAdmin

Zeichensätze

Eine zentrale Frage bei Datenbanken ist die Wahl des Zeichensatzes. Im Web kommen im deutschsprachigen Raum hauptsächlich zwei Zeichensätze zum Einsatz: ISO-8859-1 und UTF-8. Sie kennen beide vermutlich aus dem entsprechenden -Tag in der HTML-Seite. ISO-8859-1 (auch Latin1 genannt) besteht aus 256 Zeichen (8 Bit). Die ersten 128 sind die sogenannten ASCII-Zeichen. Darin sind aber keine Sonderzeichen wie deutsche Umlaute enthalten. Deswegen gibt es die 8859-Zeichensatz- Familie, die für die verschiedenen europäischen Sprachen unterschiedliche Kombinationen für die zweite Hälfte der 256 Zeichen bietet. 8859-1 enthält dementsprechend die deutschen Umlaute.

Special MySQL und phpMyAdmin: MySQL

© Archiv

Dump-Erstellung über die Konsole unter Linux.

Der andere Ansatz ist der Unicode-basierte Zeichensatz UTF-8. Unicode ist eine Bestrebung, alle Zeichen aller Sprachen dieser Welt in einem Zeichensatz zu speichern. Theoretisch haben hier rund 16,78 Millionen Zeichen Platz. Diese Unicode-Zeichen können in verschiedenen Kodierungen gespeichert werden. Im Web eingesetzt wird UTF-8. UTF-8 ist sicherlich heute der zu bevorzugende Ansatz, da damit alle Sprachen unterstützt werden können, ohne den Zeichensatz zu wechseln.

MySQL unterstützt beide Zeichensätze (mehr dazu hier: http://dev.mysql.com/doc/refman/5.0/en/char set.html). Dabei wird für die Datenbank der Zeichensatz und die Kollation benutzt. Die Kollation ist die Sortierregel für den Zeichensatz - das heißt etwa, wie Zeichen miteinander verglichen werden. Jeder Zeichensatz besitzt eine oder mehrere zugehörige Kollationen. Latin1 besitzt die Kollationen für verschiedene Sprachen, so unter anderem latin1_general_ci und latin1_german1_ci. Der Standard ist bei vielen Installationen beispielsweise die Kollation latin1_swedish_ci.

Der Standard kann jeweils im Register Variablen abgelesen werden. Im Register Zeichensätze sehen Sie alle verfügbaren. Für jede Datenbank, jede Tabelle und jedes Feld haben Sie die Möglichkeit, einen eigenen Zeichensatz zu wählen. Dies funktioniert über SQL:

oder auch über phpMyAdmin. Dort ist das Register Operationen zuständig. Aber Vorsicht, wenn Sie eine Umschaltung vornehmen, gehen unter Umständen Zeichen verloren. Bei Zeichensatzproblemen sollten Sie grundlegend überprüfen, ob Verbindung, Kollation und Speicherung zeichensatztechnisch übereinstimmen.

ALTER TABLE news DEFAULT CHARACTER 
SET latin1 COLLATE latin1_german1_ci

Erstellen einer Tabelle

Über phpMyAdmin erhalten Sie den Code zum Erstellen einer Tabelle, wenn Sie sie exportieren. Noch schneller klappt das über die Konsole. Verwenden Sie einfach folgende Zeile:

Sie erhalten dann direkt eine Ausgabe mit dem SQL-Code, der zum Erstellen der Tabelle mit den entsprechenden Einstellungen notwendig wäre. Übrigens, dies funktioniert nur, wenn MySQL nicht mit einer der Optionen --safe-show-database oder -- skip-show-database gestartet wurde.

SHOW CREATE TABLE Tabellenname;

Strings komprimiert speichern

Blobs dienen in MySQL dazu, Bilder und andere binäre Daten zu speichern. Mit der MySQL-Funktion COMPRESS() können Sie allerdings auch Strings in BLOB-Feldern abspeichern. Komprimiert werden sie intern mit der zlib-Komprimierung. Ein entsprechendes Statement kann so aussehen:

Beim Auslesen muss entsprechend UNCOMPRESS() verwendet werden:

UPDATE internetmagazin.artikel SET
binaer = COMPRESS('Neuer Inhalt') 
WHERE artikel.id =3 LIMIT 1 ;

Dies ist ein Ansatz, um gerade bei längeren Texten Speicherplatz zu sparen. Ob das Performance-Gewinne bringt, hängt hauptsächlich davon ab, wie stark der Inhalt auf die Kompression anspricht. Eine interessante Erörterung zum Thema finden Sie unter www.mysqlperformanceblog.com/2008/01/11/mysql-blob-compression-performance- benefits/.

SELECT UNCOMPRESS(binaer) FROM
 internetmagazin.artikel

Viele der hier gezeigten Tipps und Tricks sind einfach zu handhaben, aber man stolpert in der praktischen Arbeit selten darüber. Dementsprechend spannend ist es, sich ab und an mit der Datenbank, die hinter Ihren Anwendungen steckt, zu beschäftigen.

Skins für phpMyAdmin

Sollten Sie Ihren Kunden etwas Besonderes bieten wollen, können Sie phpMyAdmin optisch anpassen. phpMyAdmin besitzt als Basis ein Template. Es besteht aus zwei PHP-Dateien. info.inc.php enthält den Theme-Namen und die Version. layout.inc.php besteht aus einigen Konfigurationsvariablen mit Farben und Ähnlichem. Die HTML-Ausgabe selbst ist in den phpMyAdmin-Dateien hartkodiert. Weitere optische Anpassungen sind allerdings über die CSS-Dateien im Unterverzeichnis css möglich und in img finden Sie die entsprechenden Icons. Viele bestehende Themes finden Sie unter www.phpmyadmin.net/home_page downloads.php?themes.

Mehr zum Thema

image.jpg
Ratgeber: "Bildbearbeitung"

Der Cloud sei Dank entstehen im Netz immer mehr Werkzeuge, die komplexe Rechenprozesse in einfache Interfaces packen. Das gilt auch für die…
Online-Shop mit Opencart erstellen
Ratgeber: "Web-Business"

Neben Magento fristen verschiedene Shopsysteme ein Mauerblümchendasein. Doch zu Unrecht finden Lösungen wie Opencart wenig Beachtung. (Dr. Holger…
Soziales Netzwerk So.cl
Internet Tipps

Sie möchten sich mit Gleichgesinnten vernetzen, komfortabler Surfen oder Ihren Webstore prominenter bei Google platzieren? Das Internet Magazin hat…
Page-Flip-Aktionen für mobile Apps erstellen
Ratgeber: "CSS"

Wir zeigen Ihnen an einfachen Beispielen wie Sie Page-Flip-Aktionen einbinden. Gerade im mobilen Bereich ist dies sehr beliebt, hierbei verschwindet…
Bilbearbeitung mit Inkscape
Open-Source-Design

In Sachen Grafikprogramme für das Webdesign denkt man zuerst an Fireworks oder Photoshop. Doch auch die Open-Source-Szene hält Anwendungen bereit,…