![]() Mailinglisten-Archive |
Hallo Sebastian, wie ich schon letztens ausgef�hrt habe kann MySQL keine Funktionsaufrufe optimieren. Daher w�re folgendes immer ein full table scan und daher extrem langsam. > WHERE EXTRACT(YEAR_MONTH FROM `datum`) = 'yyyymm'; > WHERE DATE_FORMAT(`datum`, "%Y%m") = 'yyyymm'; Handelt es sich in dem Fall um ine DateTime Feld so f�hrt MySQL die Abfrage zwar aus - es wird aber auch hier nichts optimiert und es wird ein full table scan durchgef�hrt. Handelt es sich um ein varchar Feld dann gilt das hier ein Index verwendet wird und sogar manchmal schneller ist als ein Range �ber ein DateTime Feld. > WHERE `datum` LIKE 'xxxx-xx-__'; Das, oder die normale schreibweise ohne BETWEEN ist die optimale Abfrage f�r DateTime Felder: > WHERE `datum` BETWEEN 'xxxx-xx-00' AND 'yyyy-yy-00'; WHERE `datum`>='xxxx-xx-00' AND `datum`<='yyyy-yy-00'; Gru�, Andreas -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive