Pb Recount

Discussion in 'French' started by pmadfm, Jan 9, 2008.

  1. pmadfm

    pmadfm 01-AGF / 01-ASI

    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 ;-)

    Code:
    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.

Share This Page