Antwort #4 am: 26. Januar 2010, 21:23:41
Chris, da es noch kein Blättern gibt:
1. macht es einen Unterschied, wenn Du einen Index auf products_to_categories.categories_id setzt?
2. Sind die products.products_sort-Werte alle gleich (= 0)?
@devels: Wir sollten mal überlegen, ob wir die Artikelabfrage nicht aufs wesentliche reduzieren. Für die Tabellenanzeige brauchen wir nur das
SELECT p.products_id, p.products_sort, pd.products_name, p.products_status, p.products_startpage, p.products_price, p.products_discount_allowed
FROM products p
JOIN products_description pd ON p.products_id = pd.products_id
JOIN products_to_categories p2c ON p.products_id = p2c.products_id
WHERE
pd.language_id = '2' AND
p2c.categories_id = '4711'
ORDER BY p.products_sort, pd.products_name ASC
im Moment ist es aber das
SELECT p.products_tax_class_id, p.products_sort, p.products_id, pd.products_name, p.products_quantity, p.products_image, p.products_price, p.products_discount_allowed, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.products_startpage, p.products_startpage_sort
FROM products p, products_description pd, products_to_categories p2c
WHERE p.products_id = pd.products_id AND pd.language_id = '2' AND
p.products_id = p2c.products_id AND
p2c.categories_id = '4711'
ORDER BY p.products_sort, pd.products_name ASC
Die erste Abfrage ist doppelt so schnell wie die zweite. Für den ausgewählten Satz (Default der erste, sonst manuell ausgewählt) bräuchten wir zusätzliche Daten, die wir dann anfordern würden. Für die Bewertungsdaten wird das ohnehin jetzt schon so gemacht.
Grüße, Volker