Mailinglisten-Archive |
Moin Moin, MySQL hängt normalerweise an jeden SELECT ein "LIMIT 0,30" ran. Gruß Sven -----Ursprüngliche Nachricht----- Von: php-bounces at phpbar.de im Auftrag von Hans Egg Gesendet: Mi 22.12.2010 06:33 An: deutschsprachige PHP-Mailingliste Betreff: Re: [php] Ausführungszeit von MySQL-Abfragen Moin, moin Am 21.12.2010 um 18:16 schrieb Mathias Gloß (www.gmail.com): > wenn die Abfrage auf dem gleichen System einmal 0,6 und einmal 6 Sekunden > dauert, dann könnte ich mir das nur so erklären, daß unterschiedliche > selects zum Einsatz kommen - und der, der länger dauert suboptimal > formuliert ist. Es sind die gleichen. Ich kopiere das vom Skript erzeugte SQL-Statement und füge es bei PHPMyAdmin ein. > Kannst du mal den select-Befehl von phpMyAdmin (sollte da angezeigt werden) > und den von deinem Programm posten? SELECT g.uid AS id, g.url_name, g.restaurant_name AS real_name, g.adresse_1 AS address, g.plz AS zip, g.ort AS city, gaultmillau, tx_lgmapconnector_latitude AS latitude, tx_lgmapconnector_longitude AS longitude, '' AS distance, (SELECT COUNT(*) FROM tx_hegastro_schedule s WHERE s.date = '2010-12-21' AND s.status = '1' AND (s.gastro_id = g.uid OR s.gastro_id = g.show_menus_from)) AS has_menus, (SELECT COUNT(*) FROM tx_hegastro_schedule s INNER JOIN tx_hegastro_menus m ON s.menu_id = m.menu_id WHERE s.date = '1111-11-11' AND s.status = '1' AND (m.restaurant_id = g.uid OR m.restaurant_id = g.show_menus_from)) AS has_spec, (SELECT pano_id FROM tx_hegastro_panorama p WHERE p.restaurant_id = g.uid AND p.pano_status = 'SUCCESS' AND DATE_ADD(p.upload_time, INTERVAL 1 DAY) < CURRENT_TIMESTAMP ORDER BY p.position LIMIT 1) as first_pano, (SELECT filename FROM tx_hegastro_media m WHERE m.gastro_id = g.uid AND m.type = 'IMAGE' ORDER BY m.position LIMIT 1) as first_image FROM tx_nbgastro g WHERE g.deleted = 0 AND g.hidden = 0 AND g.showlive = 1 ORDER BY real_name Ich weiß, dass die Subselects die Performancekiller sind. Jeder von ihnen braucht ein paar Millisekunden. Ich werde auch dafür sorgen, dass die Ergebnisse der Subselects statisch verfügbar sind und von der Applikation aktuell gehalten werden. Die Frage bleibt, was PHPMyAdmin anders macht, damit diese Abfrage 10x schneller ausgeführt wird als durch mein Skript. Einen schönen Tag wünsche ich allerseits. Gruß, Hans -- ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive