Rolf b: PDO oder SQL Statement

Beitrag lesen

Ich habe auch die Erfahrug gemacht, dass es performanter ist, eine ganze MySQL-Tabelle als Array komplett in den RAM zu lesen, anstatt mit prepared Statements einzelne Records abzufragen.

tl-dr: es kommt immer auf die Lage an. Man kann das nicht so allgemein sagen wie Du es schreibst.

Ich würde vermuten, dass ein Full Table Read nur in Ausnahmefällen lohnt. Ok, ich habe es auch schon gemacht, aber nur, weil ich einen dusseligen DB Layer hatte (.NET EntityFramework) der unbedingt SQL generieren wollte und dieses SQL einfach nicht situationsangemessen war.

Grundsätzlich gilt dabei:

  • Die Tabelle muss in den RAM passen
  • Wenn es ein Web ist, musst Du entweder in EINEM REQUEST sehr viele Zugriffe auf die Tabelle machen, damit sich das lohnt, oder du brauchst ein Cache Tool (APC? Habs noch nicht genutzt). Bei Einsatz eines Cache bekommst Du einen ganzen Haufen neuer Probleme bezüglich Aktualität.
  • Selbst wenn die Tabelle passt, kostet das RAM, den bei vielen aktiven Usern der Webserver, die PHP Runtime oder andere Komponenten dringender brauchen könnten.

Gruß Rolf