Hallo zusammen,
ich stelle gerade meine gesamte PHP Anwendung auf PDO und Prepared Statements um.
Ich habe eine Datei "db.inc.php" in der ich die MySQL Connection mache. Diese Datei wird ganz am Anfang includiert, wird also bei jedem Refresh geladen. In diese Datei habe ich jetzt auch mal sämtliche Prepared Statements eingefügt.
Also etwa;
$dbSelectPrintdata = $DBO->prepare("SELECT PValue,PName,PrintdataID FROM printdata WHERE PrintjobID = :printjobid AND SUBSTRING(PName,1,18) = 'InsertPaperCatalog' ORDER BY PrintdataID ASC");
$dbSelectLogin = $DBO->prepare("SELECT usr FROM login WHERE usr = :user");
...
so gibt es jetzt noch sehr viele Zeilen mit verschieden Tabellen, Inserts und Udates.
1. Wie seht ihr das hinsichtlich der Performance? Ich wollte eigentlich der Übersicht halber alle Prepared Statements in einer Datei haben.
Ist dies vielleicht hinsichtlich der Last für den MySQL Server nicht optimal weil er ja bei jedem Refresh der Seite immer alles "einlesen" muss?
Wäre es besser die jeweilige Prepared Statement in die PHP Datei einzufügen wo sie auch benötigt wird?
2.
Eine Tabelle "userdata" hat ca. 20 Spalten.
An verschiedenen Stellen in der Anwendung werden immer wieder unterschiedliche Infos aus Spalten benötigt.
Einmal "username", "password"
Dann wieder "Accountnumber"
Dann wieder wo anders "Loginname"
Jetzt müsste ich jedesmal eine eigene Prepared Statement machen also etwa;
$dbSelectUser_loginname = $DBO->prepare("SELECT loginname FROM userdata WHERE usr = :user");
dann wieder;
$dbSelectUser_uname_pwd = $DBO->prepare("SELECT username, password FROM userdata WHERE usr = :user");
Ich habe das jetzt vereinfacht indem ich einmal ALLE 20 Spalten im Select aufnehme. Dann brauche ich nur noch ein Prepared Statement und kann später gezielt mit "Fetch" die Spalten ansprechen die ich brauche.
Meine Frage ist nur: Ist es ein großer Unterschied für den Server ob man immer gleich 20 Spalten abfrägt oder nur eine oder zwei?
vielen Dank und viele Grüße
hawk