:::: MENU ::::

WebDevExp

Meine Erfahrungen in der Webentwicklerwelt

Posts Tagged / mysql

  • Apr 21 / 2010
  • 2
mysql

MySQL: Index über mehrere Spalten

Ich habe bereits mehrfach mitbekommen, dass anscheinend kaum jemand weiß, dass man Indizes auch über mehrere Spalten anlegen kann.

Zuerst sollte erwähnt werden, dass MySQL im Normalfall pro Query nur EINEN pro Tabelle Index auf einmal nutzen kann (es gibt Ausnahmen, merged-index, aber nur unter bestimmten Umständen in bestimmten Queries).

Ein Beispiel für den Einsatz eines Index über mehrere Spalten, wäre z.B. das folgende:

Continue Reading

  • Apr 02 / 2010
  • 0
mysql

High Performance MySQL Konfiguration – my.cnf

Ich beschäftige mich aus beruflichen Gründen schon recht lange mit der Thematik und möchte das gesammelte Wissen nun mal niederschreiben.

Es gibt definitiv keine Konfiguration, die allgemeingültig ist, aber ich versuche hiermit eine Hilfestellung zu geben, wie man die besten Werte für die eigenen Bedürfnisse findet.

Nicht nur der Server spielt eine Rolle, auch die Storage-Engine, um sich viel Stress zu ersparen, sollte man im vorraus planen, was man braucht und für welche Engine man sich entscheidet. Auch hier gibt es keine Universallösung, jede hat ihre Vor- und Nachteile, aber darauf will ich in diesem Eintrag nicht eingehen.

Da ich für das aktuell laufende Projekt nur InnoDB einsetze, beziehen sich die Ratschläge auf eine reine InnoDB Konfiguration und sollten ab MySQL Version 5.0 funktionieren.

Continue Reading

  • Jan 22 / 2010
  • 3
mysql, php

Objekte serialisiert in einer MySQL Datenbank ablegen

Die Meinungen, ob man komplette Objekte ablegen sollte oder nicht, gehen sehr auseinander.
Dagegen spricht zum Beispiel, dass man nicht mehr nach Inhalten in einem Objekt suchen kann oder immer der komplette Text neugeschrieben werden muss, auch wenn man nur eine Zahl ändert. Dafür spricht auch einiges, jedenfalls geht es mir darum, dass ich heute vor einem Problem stand.
Continue Reading

  • Nov 21 / 2009
  • 0
mysql

Case-Sensitivity in MySQL

Konnte es selbst nicht glauben, aber ich war aus irgendeinem Grund sehr lange der Meinung, dass Queries mit „WHERE field = ‚value'“ case-sensitiv sind und „WHERE LIKE ‚value'“ nicht. Die Annahme ist komplett Falsch und es hängt alleine vom Charset (Collation) des Datenbankfeldes ab. Die meisten Standardcharset haben ein „_ci“ am Ende ihres Namens, dies steht für „case-insensitive“. Continue Reading

  • Sep 07 / 2009
  • 0
mysql

SQL Peformanceoptimierung: GROUP BY

Wenn möglich, sollte GROUP BY normalerweise verhindert werden. Es sorgt in (fast) jedem Fall für temp-Tables, die den Server unter Umständen recht schnell an seine Grenzen treiben (RAM, CPU). Oft kann man hier auf simple Subselects (oder Derived-Queries) zurückgreifen, um an die gewünschten Infos zu kommen.

Für den Fall, dass ein GROUP BY aber sein muss, das Ergebnis aber keiner Sortierung bedarf, sollte man ein ORDER BY NULL hinzufügen, da MySQL das grupperte Ergebnis sortiert, durch das Sortieren nach NULL, verhindert man dies und kann das Query unter Umständen noch beschleunigen.

SELECT a, COUNT(b) FROM test_table GROUP BY a ORDER BY NULL;
  • Sep 06 / 2008
  • 2
mysql

Mehrere MySQL Instanzen auf einem Server

Die täglichen MySQL Backups sollte nicht mehr auf den Produktivservern geschehen, also wurde ein Dump-Server angeschafft, der die verschiedenen MySQL-Server (Master-Slave-Verbund + diverse „Hilfsserver“), einfach repliziert. Hier können dann täglich Dumps gezogen werden.

Das Problem, das auftrat und, meiner Meinung nach, nur schlecht Dokumentiert ist, ist das Betreiben von mehreren, unabhängigen MySQL Instanzen auf einerm Server. Continue Reading