Archiv für MySQL
4. Juni 2007 um 17:16 · Gehört zu MySQL, PHP (Allgemein), Performance
Ein ungeschriebenes Gesetz der Applikationswelt ist, dass ein Programm welches mehr als 5 Bildschirmseiten Nutzdaten enthält, durchsuchbar sein sollte. Dabei gibt es verschiedene Schwierigkeitsgrade und unterschiedliche Suchdisziplinen. In dieser mehrteiligen Artikelserie möchte ich praktische Methoden zur Indexierung, Suche und Suchergebnisdarstellung vorstellen.
Ganz zu Beginn gibt es nichts als Rohdaten, die ausgewertet und durchsucht werden können. Zunächst ein paar allgemeine Beispiele (wahrscheinlich fällt jedem direkt eine konkrete Projekt-Anwendung ein):
- Direkt durchsuchbare Dateien (PDFs, Word-Dokumente, Textdateien)
- Undurchsuchbare Dateien mit in der Datenbank hinterlegten Meta-Informationen (Fotos, Grafiken)
- Datenbank-Einträge bzw. Tabellenattribute wie Vorname, Name, PLZ und Ort einer Kontaktdatenbank
- Volltext-Datenbankinhalte wie HTML-Code oder Texte einer CMS-Datenbank
- Quelltexte resultierend aus einem Crawlerdurchlauf
- Verschachtelte Verzeichnbezeichnungen aus einem Dateisystem
Den kompletten Artikel lesen »
23. Mai 2007 um 19:25 · Gehört zu Best-Of, MySQL, PHP (Allgemein)
Letztens bei René entdeckt, will ich Euch den Generator für Dummyinhalte nicht vorenthalten.
Das Tool arbeitet Spaltenorientiert, bietet als Ausgabeformat Excel, XML, CSV und SQL an. Die Anzahl der Spalten ist variabel und man kann für jede Spalte festlegen, welche Art von Wert enthalten sein soll:
- Bestandteil einer Adresse (Name, Telefonnumer, Email und so)
- unterschiedliche Texte
- Benutzerdefinierte Daten wie Autoincrement-Werte oder Zahlen aus einem bestimmten Range
Den kompletten Artikel lesen »
8. Mai 2007 um 12:08 · Gehört zu Allgemein, Best-Of, MySQL, PHP (Allgemein), PHP 5
Durch den Artikel “PHP Compiler” auf die Idee gebracht, hab ich nach einem schon länger bekannten Projekt gegoogelt: Server2go. Ich hab damit selbst schon 2 Projekte erfolgreich auf eine CD gepackt.
Das Produkt ist komplett kostenlos - und so kann man sehr schnell und günstig PHP-Projekte auf USB-Sticks, CDs und portable Festplatten packen. Für die Ausführung der PHP Dateien ist keine Installation notwendig. Vielmehr wird der (bereits mitgelieferte Mini-Browser) gestartet, der wieder im Hintergrund Webserver und Datenbank hochfährt - wenn benötigt wohlgemerkt.
Den kompletten Artikel lesen »
8. Mai 2007 um 09:01 · Gehört zu CSS, HTML, Javascript, MySQL, PHP (Allgemein)
Nachdem Phil über die Simulation von CSS Selektoren mit Hilfe von Dean Edwards Bibliothek berichtet hat, hab ich auf der Seite von Dean gleich mal weiter gestöbert und eine interessante weitere Bibliothek gefunden: Starlight.
Hat nix mit dem gleichnamigen *-Express zu tun sondern realisiert auf einfache Weise das Syntax-Highlight beliebiger Programmiersprachen auf Webseiten z.B. im <pre>-Tag.
Da ich auf PHP Blogger für Syntax-Highlights ebenfalls das <pre>-Tag verwende (<code> ist übrigens auch möglich), hab ichs gleich mal beim PHP Blogger eingebunden und getestet.
Den kompletten Artikel lesen »
24. April 2007 um 19:00 · Gehört zu MySQL, Performance
Gerade eben wieder erlebt - INNER JOINS machen das Leben schön. Aber leider stelle ich ständig fest, das es MySQL Banausen gibt, die felsenfest behaupten, dass es keinen Unterschied zwischen CROSS JOINS, LEFT JOINS und INNER JOINS gibt.
Okay, kleines Beispiel. Eben rief mich ein Kunde an und meinte, es dauert etwa 20 Sekunden, bis eine bestimmte Seite in der Administration angezeigt wird. Zuverlässig reproduzierbar. Ein Blick auf die MySQL Konsole und schon war klar, wo der Hase begraben liegt.
Die Seite hat einen Eigenschaften-Block, der aus einem allgemeinen Daten-Repository geladen wird. Das Repository ist durch 3 Tabellen realisiert: Die erste beinhaltet die Datensatz-definitionen, die zweite die Feld-Definitionen und die dritte die Wert/Feld/Datensatz Verknüpfung. Und so viele Datensätze waren in den einzelnen Tabellen:
- Datensatz-Tabelle: 14000
- Feld-Tabelle: 300
- Werte-Tabelle: 111000
Den kompletten Artikel lesen »
1. April 2007 um 17:57 · Gehört zu Best-Of, Framework, MySQL, OOP, PHP 4, PHP 5
Die Jungs von POG verfolgen eine interessante Idee: Der Code von Standard Objekten sieht jedes Mal ähnlich aus und ist daher reproduzierbar. Aus der Erfahrung heraus, benötigt man immer wieder die selben Funktionen und Angaben, um Daten aus PHP nach MySQL zu schaufeln und umgekehrt.
Das naheliegenste ist natürlich ein Generator, der sauberen Code generiert. Ich hab mir mal den “künstlich” erzeugten Code angeschaut und folgendes festgestellt:
- Der Code ist sauber strukturiert
- Die Daten werden validiert
- Der Code kann für PHP 4 und PHP 5 (bzw. 5.1+) generiert werden
- Der generierte Code ist als Zip downloadbar
- Der generierte Code ist via Copy & Paste verwendbar (Im Textarea abgebildet)
- Im Zip wird ein DB Wrapper für PHP 4 geliefert
- Für PHP 5.1+ kann auch die native PDO (PHP Data Objects) Klasse verwendet werden
- Im Zip wird eine kleine Setup Routine mitgeliefert
- Im Zip ist auch schon der MySQL Code drin
Den kompletten Artikel lesen »
28. März 2007 um 16:46 · Gehört zu Best-Of, MySQL
In dem Artikel “Hast Du auch schön indexiert?” habe ich bereits vor ein paar Tagen über die Notwendigkeit berichtet, von den Index-Funktionen der MySql Datenbank-Engines gebrauch zu machen.
Nur wann entscheidet man sich für welche Indexform? Diese hier stehen für MyISAM (und bis auf Volltext auch für InnoDB) zur Verfügung:
- Allgemeiner Index (Index)
- Eindeutiger Index (Unique Index)
- Volltext Index (Fulltext Index)
Den kompletten Artikel lesen »
18. März 2007 um 13:46 · Gehört zu Best-Of, MySQL
MySQL Optimierung, Part II: Mit Indizes richtig umgehen… Und immer noch beschäftigt mich das Thema, wie weit man seine MySQL Datenbank optimieren kann. Mittlerweile bin ich auf den Trichter gekommen, das sinnvolle Indizes was bringen könnten.
Wie funktioniert ein Index? Da könnte man natürlich bücherweise drüber referieren - ich beschränke mich einfach auf ein banales Beispiel. Ein Index ist vergleichbar mit einer Inhaltseingabe (grob granulierter Index / Kapitel) und einem Stichwortverzeichnis am Ende eines Buches (fein granulierter Index).
- Wenn man grob weiß, was man sucht sollte man zunächst ganz hinten im Stichwortverzeichnis suchen, das ist alphabetisch und man findet schnell, was man sucht.
- Wenn noch die Kapitelnummer weiß, is das Inhaltsverzeichnis eine gute Adresse.
Den kompletten Artikel lesen »
17. März 2007 um 15:25 · Gehört zu Best-Of, MySQL
Was ist besser? MyISAM oder InnoDB? Früher war die vorgegebene Standard-Storage-Engine von MySql MyISAM. Mittlerweile ist es InnoDB. Aus aktuellem Anlass musste ich mir Gedanken machen, welche Storage-Engine die bessere Wahl ist.
Bislang war InnoDB konfiguriert, aber der Server geht wegen der aufwendigen Speicherung von InnoDB tierisch in die Knie. Zeit, sich mal auf die Vorzüge und Nachteile der jeweiligen Engine zu konzentieren:
Was InnoDB bietet:
- Transaktionen
- Locking auf Zeilen Ebene
- Speicherung in Tablespaces
- Referenzielle Integrität
- Primärschlüssel
- Datensatz-Cache
Jetzt kommt MyISAM:
- Locking auf Tabellenebene
- Speicherung in getrennten Dateien (eine pro Tabelle)
- Volltextindizierung
- Daten-Komprimierung
Den kompletten Artikel lesen »
« Neuere Artikel