# Nochmal zu Performance

**URL:** <https://forum.shopware.com/t/nochmal-zu-performance/5319>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [29. November 2011 um 18:54 UTC](https://forum.shopware.com/t/nochmal-zu-performance/5319 "2011-11-29T18:54:57Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kamik](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@kamik](https://forum.shopware.com/u/kamik)\
**Post date:** [29. November 2011 um 18:54 UTC](https://forum.shopware.com/t/nochmal-zu-performance/5319/1 "2011-11-29T18:54:57Z")

</div>

Kann man dia Abfrage aus sArticles.php so umschreiben, dass die nicht gesamte Tabelle s\_articles durchsuct? Abfrage SELECT SQL\_CALC\_FOUND\_ROWS a.id as articleID,aDetails.id AS articleDetailsID, weight,aDetails.ordernumber,a.datum,releasedate additionaltext, shippingfree,shippingtime,instock, a.description AS description, description\_long, aSupplier.name AS supplierName, aSupplier.img AS supplierImg, a.name AS articleName, topseller as highlight, IFNULL(p.price,p2.price) as price,laststock, sales, IF(p.pseudoprice,p.pseudoprice,p2.pseudoprice) as pseudoprice, aTax.tax, minpurchase, purchasesteps, maxpurchase, purchaseunit, referenceunit, unitID, pricegroupID, pricegroupActive, IFNULL(p.pricegroup,IFNULL(p2.pricegroup,‘EK’)) as pricegroup, attr1,attr2,attr3,attr4,attr5,attr6,attr7,attr8,attr9,attr10, attr11,attr12,attr13,attr14,attr15,attr16,attr17,attr18,attr19,attr20, – cd.discount, ( SELECT TRIM(GROUP\_CONCAT(additionaltext SEPARATOR ‘, ‘)) as additionaltext FROM s\_articles\_details WHERE articleID=a.id AND additionaltext!=’’ GROUP BY articleID HAVING COUNT(\*)\>1 ORDER BY kind, position, additionaltext ) as variants, IFNULL((SELECT 1 FROM s\_articles\_groups WHERE articleID=a.id LIMIT 1),0) as sConfigurator, IFNULL((SELECT 1 FROM s\_articles\_esd WHERE articleID=a.id LIMIT 1),0) as esd, IFNULL((SELECT CONCAT(AVG(points),’|’,COUNT(\*)) as votes FROM s\_articles\_vote WHERE active=1 AND articleID=a.id),‘0.00|00’) as sVoteAverange, IF(DATEDIFF(NOW(), a.datum)\<=30,1,0) as newArticle, IF(aDetails.sales\>=30,1,0) as topseller, IF(a.releasedate\>CURDATE(),1,0) as sUpcoming, IF(a.releasedate\>CURDATE(),DATE\_FORMAT(a.releasedate, ‘%d.%m.%Y’),’’) as sReleasedate, ( SELECT 1 FROM `s_articles_live` WHERE `articleID`=a.id AND `active` =1 AND `valid_from` \<= NOW() AND `valid_to` \> NOW() LIMIT 1 ) as liveshopping FROM s\_articles\_categories AS aCategories JOIN s\_articles\_details AS aDetails ON aDetails.articleID=aCategories.articleID AND aDetails.kind=1 JOIN s\_articles\_attributes AS aAttributes ON aAttributes.articleID = aCategories.articleID AND aAttributes.articledetailsID=aDetails.id JOIN s\_articles AS a ON a.id=aCategories.articleID AND a.mode = 0 AND a.active=1 JOIN s\_core\_tax AS aTax ON aTax.id=a.taxID LEFT JOIN s\_articles\_supplier AS aSupplier ON aSupplier.id=a.supplierID LEFT JOIN s\_articles\_prices p ON p.articleDetailsID=aDetails.id AND p.pricegroup=‘EK’ AND p.to=‘beliebig’ LEFT JOIN s\_articles\_prices p2 ON p2.articledetailsID=aDetails.id AND p2.pricegroup=‘EK’ AND p2.to=‘beliebig’ WHERE aCategories.categoryID=2195 AND ( SELECT articleID FROM s\_articles\_avoid\_customergroups WHERE articleID = a.id AND customergroupID = 1 ) IS NULL ORDER BY a.datum DESC, a.id LIMIT 0,12 Hier ist die Explain-Ergebnis [http://www.technikexpert.com/Explain.png](http://www.technikexpert.com/Explain.png) Wie man sieht, es ist kein INDEX für s\_articles benutzt wird.
