Ich bin gerade dabei einen kleinen Shop zu programmieren, und teste nun aus was besser ist, die Kommentare zu den Produkten in eine eigene Tabelle, oder zu dem jeweiligen Produkt in eine Spalte quetschen. Alleine wegen der Administration wäre es mir ja eigentlich schon lieber sie in eigene Tabelle zu setzen.
Wenn die Kommentare beim Produkt untergebracht sind, dann dauert die Abfrage inkl exploden der Kommentare, bei 500 Produkten, ungefähr 2.8 Sekunden. Wobei die Abfrage selbst nur ca. 0.05 Sekunden dauert, das Exploden ist es was so lange dauert. Also noch etwas das gegen diese Methode spricht.
Sind die Kommentare in einer extra Tabelle, dann wird es etwas schwieriger, das einzigste was mir einfiel, war die Anzahl der Kommentare auszulesen, und dann halt später die Kommentare selbst auszulesen wenn der Benutzer sie sehen will.
Das merkwürdige ist das dieser Join sowohl bei 500, als auch bei nur einem Datensatz, immer um die 1.6-1.8 Sekunden benötigt. Zum testen sind jeweils 64 Kommentare zu jedem der 500 Produkte vorhanden.
Das kann doch nicht normal sein, oder? Wenn ein Datensatz schon 1.6 Sekunden benötigt, dann müßte es bei 500 doch wesentlich mehr sein, bzw. umgekehrt, bei nur einem wesentlich weniger wenn 500 Datensätze 1.6 Sekunden benötigen?
Gruß
Olli
Wenn die Kommentare beim Produkt untergebracht sind, dann dauert die Abfrage inkl exploden der Kommentare, bei 500 Produkten, ungefähr 2.8 Sekunden. Wobei die Abfrage selbst nur ca. 0.05 Sekunden dauert, das Exploden ist es was so lange dauert. Also noch etwas das gegen diese Methode spricht.
Sind die Kommentare in einer extra Tabelle, dann wird es etwas schwieriger, das einzigste was mir einfiel, war die Anzahl der Kommentare auszulesen, und dann halt später die Kommentare selbst auszulesen wenn der Benutzer sie sehen will.
Das merkwürdige ist das dieser Join sowohl bei 500, als auch bei nur einem Datensatz, immer um die 1.6-1.8 Sekunden benötigt. Zum testen sind jeweils 64 Kommentare zu jedem der 500 Produkte vorhanden.
Code:
SELECT t1.id AS id, t1.category_id AS category_id, t1.item AS item, t1.price AS price, t1.discount AS discount, t1.quantity AS quantity, t1.image AS image, t1.description AS description, COUNT(t2.id) AS comments, t1.date AS date FROM items AS t1 INNER JOIN comments AS t2 ON t2.item_id = t1.id GROUP BY t1.id
Gruß
Olli
Kommentar