Archiv für die Kategorie „Dos & Don’ts“

Don’t: Produktive Datenbankabfragen mit Select * from …

Freitag, 5. November 2010

Mittels Cacti konnten wir einen beachtlichen Anstieg des mySQL Traffics auf einem Shared Hosting Server feststellen – welcher langsam aber sicher die Performance des Servers beeinträchtigte.

Ein einfaches

SHOW FULL PROCESSLIST;

auf der mySQL-Konsole dieses Servers brachte folgendes Query mit sehr kurzen Intervallen und einer grossen Laufzeit zum vorschein:

SELECT * FROM hits ORDER by userid DESC

Somit war auch die verdächtige Datenbank – und dadurch auch der verantwortliche Account erruiert. Ein kurzer Blick auf das Schema dieser Datenbank/Tabelle zeigte folgendes:

  • > 1’000’000 Datensätze!
  • Kein Index auf userid!

(mehr …)

SQL Querys so kompakt wie möglich halten

Freitag, 15. Oktober 2010

Setzten sie keine SELECT * FROM Statements ein wenn sie nicht zwingend ALLE informationen benötigen! Natürlich sollten auch unnötigen keine JOINS erstellt werden.

Praxisbeispiel:
Ein Kundenserver viel immer wieder durch schlechte Performance auf. Es handelte sich dabei um eine Forensoftware von Woltlab, welche mit ein paar Hacks erweitert wurde. Insgesammt umfasst die Datenbank an die 1.5 Millionen Posts in 300’000 Threads. Das Datenvolumen der Datenbank lag zu diesem Zeitpunkt bei rund 1.4GB. Zu Stosszeiten waren jeweils an die 250 User und Bots unterwegs..

(mehr …)


Social Widgets powered by AB-WebLog.com.