PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘Server-Software’ Category

SQL richtig schreiben: Ausnutzung von Indizes

with 5 comments

PerformanceUm SQL kommt man in der heutigen Webentwicklung nicht herum, und jeder von uns kann SQL-Queries erstellen. Doch nicht jeder SQL-Query, der das korrekte Ergebnis zurückliefert, ist optimal aus Sicht der Performance. Hier ein kleines Beispiel:

Wir haben folgende Tabelle:

CREATE TABLE IF NOT EXISTS `Login` (
  `LoginId` int(11) NOT NULL AUTO_INCREMENT,
  `UserId` int(11) NOT NULL,
  `LoginDateTime` datetime NOT NULL,
  PRIMARY KEY (`LoginId`)
)

Nehmen wir an in der Tabelle sind 10.000.000 Zeilen. Es sind 10.000 verschiedene UserIds enthalten und jeder User hat im Schnitt 1.000 Logeinträge in den letzten 3 Jahren produziert. Die Tabelle enthält erstmal keine Indizes.

Die Aufgabe ist die folgende: Hole alle Logeinträge die in den letzten 30 Minuten stattgefunden haben.

Die Queries

Weiterlesen »

Written by Michael Kliewe

März 27th, 2013 at 10:10 am

SPDY Verbreitung: Facebook nun auch

without comments

Facebook hat es noch nicht offiziell announced, aber seit kurzem ist Facebook auch via SPDY erreichbar. Die Browserverbreitung von SPDY ist mittlerweile recht gut, auch wenn Safari und der Internet Explorer noch hinterherhängen. Gerade die wichtigen mobilen Browser, bei denen es besonders große Vorteile hat, ist die Verbreitung recht gut.

Wie SPDY auf Serverseite aktiviert wird habe ich für den nginx-Webserver bereits im Juni letzten Jahres geschrieben, aber auch Lösungen mit HAProxy oder Apache mod_spdy sind möglich.

Weiterlesen »

Written by Michael Kliewe

März 6th, 2013 at 9:52 pm

Posted in Server-Software

Tagged with ,

Die CouchDB Datenbanken komprimieren

without comments

Heute gibts ein kleines Hilfsscript für all diejenigen, die eine CouchDB einsetzen und noch nicht den neuen Auto-Compaction-Dienst nutzen (können) den Version 1.2.0 mit sich bringt. Compaction benötigt man bei CouchDB um die Datendateien klein zu halten, denn CouchDB ist append-only, d.h. alle Aktionen werden hinten angehängt, insgesondere auch Updates und Deletes. Dadurch wachsen die Datenbank-Dateien mit der Zeit an und beinhalten einen Großteil alter Daten, die schon längt invalide sind. Mit Compaction wird die Datei einmal neu geschrieben mit nur dem aktuellen Inhalt.

Das folgende Script durchläuft eine Liste von Datenbanken und komprimiert sie, inklusive einem vorhandenen View. Dass es für den Einsatz in eurer Umgebung angepasst werden muss versteht sich von selbst, man könnte es z.B. auch noch so erweitern dass man erst eine Liste aller Datenbanken abruft und darüber iteriert, und auch eine Liste der jeweiligen Views holt und darüber iteriert. Für mich jedoch reichte für den einmaligen Einsatz vor der Migration zu 1.2 eine relative starre Liste.

Weiterlesen »

Written by Michael Kliewe

Februar 27th, 2013 at 11:51 am

Bei jeder eingehenden E-Mail ein PHP Script ausführen

with 11 comments

Nach einer kleinen Weihnachtspause gibts heute einen kleinen Trick, um bei jeder eingehenden E-Mail ein PHP-Script aufzurufen. In diesem Script kann man beispielsweise die E-Mail verändern, parsen und Informationen auslesen, den Inhalt in eine Datenbank packen oder andere nette Sachen, die man mit E-Mails machen kann.

Die Methode die ich normalerweise dafür nutze ist ein kleines Cronjob-Script, das periodisch auf dem IMAP-Server nachschaut ob eine neue E-Mail da ist, und dann wird der Inhalt der E-Mail abgeholt.

Postfix anpassen

Heute möchte ich eine Alternative vorstellen, die in Echtzeit die E-Mail empfängt und sie vor der Ablage im Postfach sogar noch verändern kann. Es gibt allerdings einen großen Nachteil: Man muss Zugang zum Mailserver haben, sprich per SSH auf den Server können und die Konfiguration von Postfix ändern können. Aber der Reihe nach.

Zuerst benötigen wir einen neuen Transport in Postfix, der ein Shellscript aufruft. Dazu muss die folgende Zeile in die master.cf eingefügt werden (Ordner: /etc/postfix):

Weiterlesen »

Written by Michael Kliewe

Januar 11th, 2013 at 8:31 am

SSL-Sicherheit testen

with 6 comments

Aus Interesse habe ich mal einige bekanntere Webseiten durch zwei SSL-Checks laufen lassen, um zu gucken wer patzt bzw. wer vieles richtig macht. Dazu habe ich die Online-Services von ssllabs.com und wormly.com genutzt. Einfach Domain eingeben, und schon hat man Ergebnisse. Dabei ist der Test von wormly.com ausführlicher und strenger, deshalb ist die Tabelle auch danach sortiert. Eigentlicher Ansporn war der Vergleich von mail.de mit anderen E-Mail-Anbietern (blau markiert), und dann habe ich noch weitere hinzufügt:

Weiterlesen »

Written by Michael Kliewe

November 29th, 2012 at 11:10 am

Posted in Server-Software

Tagged with , , ,