MySQL Lent sur rejoindre. De toute façon à accélérer

J'ai 2 tables. 1 la musique et de la 2 est listenTrack. listenTrack pistes uniques joue de chaque chanson. Je suis en train d'obtenir des résultats pour les chansons populaires du mois. Je reçois mes résultats mais ils sont tout simplement trop long. Ci-dessous mes tables et de requêtes

De 430 000 lignes

CREATE TABLE `listentrack` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `sessionId` varchar(50) NOT NULL,
    `url` varchar(50) NOT NULL,
    `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `ip` varchar(150) NOT NULL,
    `user_id` int(11) DEFAULT NULL,
     PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=731306 DEFAULT CHARSET=utf8

12500 lignes

CREATE TABLE `music` (
   `music_id` int(11) NOT NULL AUTO_INCREMENT,
   `user_id` int(11) NOT NULL,
   `title` varchar(50) DEFAULT NULL,
   `artist` varchar(50) DEFAULT NULL,
   `description` varchar(255) DEFAULT NULL,
   `genre` int(4) DEFAULT NULL,
   `file` varchar(255) NOT NULL,
   `url` varchar(50) NOT NULL,
   `allow_download` int(2) NOT NULL DEFAULT '1',
   `plays` bigint(20) NOT NULL,
   `downloads` bigint(20) NOT NULL,
   `faved` bigint(20) NOT NULL,
   `dateadded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY (`music_id`)
) ENGINE=MyISAM AUTO_INCREMENT=15146 DEFAULT CHARSET=utf8


SELECT COUNT(listenTrack.url) AS total, listenTrack.url 
FROM listenTrack
LEFT JOIN music ON music.url = listenTrack.url
WHERE DATEDIFF(DATE(date_created),'2009-08-15') = 0
GROUP BY listenTrack.url
ORDER BY total DESC
LIMIT 0,10

cette requête n'est pas très complexe et les lignes ne sont pas trop grandes, je ne pense pas.

Est-il un moyen pour accélérer le processus? Ou pouvez-vous suggérer une meilleure solution? Cela va être une tâche cron au début de chaque mois, mais je tiens également à le faire par les résultats de la journée ainsi.

Oh btw, je suis en cours d'exécution au niveau local, plus de 4 min à exécuter, mais sur la prod, il faut environ 45 secondes

InformationsquelleAutor kayem | 2009-08-18