Archiv für MySQL

IPC 2012 Spring Edition

Aufwändiges GROUPing vermeiden

Ich habe ja bereits an einigen Stellen hier im Blog geschrieben, dass man das Potential des DBMS möglichst ausschöpfen sollte und demzufolge alles dort schon berechnen, filtern und verarbeiten lässt, was das DBMS kann. In den meisten Fällen bleibe ich auch bei dieser Aussage, aber einige Fallstricke gibt es dabei. Einen möchte ich in diesem Beitrag beschreiben. Weiterlesen >


Vorherige und nachfolgende ID ermitteln

Ein relativ häufig benötigtes Feature bei Webanwendungen sind Vor- und Zurück-Links. Ich meine aber nicht die Buttons vom Browser sondern wenn man beispielsweise eine beliebige Nachricht in einem Postfach aufgerufen hat, dann gibt es einen Link zur vor dieser Mail eingetroffenen Nachricht und einen für die darauffolgende. Das ist nicht nur bei einem Posteingang so, sondern man kann das überall wiederfinden: bei Online-Shops, Blogs, Foren – überall, wo ein zeitlicher (oder zumindest sequentieller) Bezug zwischen den einzelnen Seiten besteht. In diesem Beitrag soll es nun darum gehen, wie man die ID dieser beiden Datensätze (Vorgänger und Nachfolger) am effektivsten mit SQL selektieren kann. Weiterlesen >


Auslesen der zuletzt eingefügten ID (auto increment)

Recht häufig benötigt man nach einer INSERT-Operation auf eine Tabelle mit einer automatisch inkrementierten ID als Primärschlüssel den durch diese Operation erzeugten Auto-Increment-Wert. Beispielsweise dafür, um anschließend weitere Operationen mit diesem Datensatz vorzunehmen oder die ID in anderen Tabellen als Fremdschlüssel zu verwenden. Zwei unterschiedliche Wege diese ID herauszufinden sollen in diesem Beitrag verglichen werden. Weiterlesen >

Schlagwörter: , , ,

MySQL Systemvariablen – key_buffer_size

Ein Thema, welches in der MySQL-Szene gern unter den Teppich gekehrt wird, sind die MySQL-Systemvariablen. Und das nicht umsonst: Sie richtig zu setzen, ist so anwendungsspezifisch, dass sich die meisten davor scheuen. Auch das MySQL-Manual bietet hier nur versteckt Hinweise und schreibt in der Kurzfassung lediglich, dass key_buffer_size und table_cache zwei Systemvariablen sind, die die Performance des MySQL-Servers am Stärksten tangieren.

In diesem Blog-Beitrag wollen wir uns diesem heiklen Thema etwas nähern. Vorab: Eine Patentlösung gibt es leider nicht. Weiterlesen >

Schlagwörter: , , , ,

Boolean-Typen in MySQL (2)

Ich hatte ja vor einiger Zeit darüber geschrieben, welcher Datentyp für boolesche Werte bzw. Werte aus einem beschränkten Wertebereich am besten geeignet ist. Dort kam ich zu dem Ergenis, dass UNSIGNED TINYINT sowie ENUM gut geeignet sind. Weiterlesen >

Schlagwörter: , ,

MySQL-Ressourcen freigeben

Kaum jemand erinnert sich gern an die hardwarenahe Programmierung in Assembler oder C, wo jeder Speicherbereich einzeln reserviert werden musste. In Scriptsprachen wie PHP ist das nicht mehr nötig, sondern wird intern erledigt. Doch jede Automatik kostet etwas: Beim Auto mit Automatikschaltung ists der höhere Spritverbrauch und bei der automatischen Speicherverwaltung von PHP ists der höhere Speicherverbrauch. Dieser Beitrag soll zeigen, wie PHP mit Speicherressourcen umgeht und wie man dies optimieren kann. Weiterlesen >

Schlagwörter: , , ,