PDA

View Full Version : Pb Recount


pmadfm
01-09-2008, 09:40 AM
Bonjour,

Suite au nombre important de catégories dans mon annuaire version 2.201 (20 000) la fonction RECOUNT ne fonctionne plus, il consomme une tonne de ressources et part dans les décors.

Alors en attendant une solution du jelpdesk, j'ai développé un petit script MySQL que je vous fournis à tout hasard ;-)


update `v2201_categories` a
set num_listings=0;

update `v2201_categories` a
set num_listings=(select count(*) from v2201_listings b
WHERE b.category_id=a.id);

create table temp
select id, num_listings from v2201_categories
where num_listings;

ALTER TABLE `temp` ADD UNIQUE INDEX ( `id` );

update `v2201_categories` a
set num_all_listings=
(select sum(num_listings) from temp b, v2201_flat_structure c
where b.id=c.category_id and a.id=c.parent_id
group by c.parent_id);

drop table temp;


De 10 minutes CPU de MySQL avec plantage, je suis passé à 5 secondes elaps avec réussite.