aide prestashop PhenixSuite Help
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    • S'inscrire
    • Se connecter

    Comment vider les grosses tables gourmandes comme connections/guest/cart

    Planifier Épinglé Verrouillé Déplacé Discussion générale
    7 Messages 2 Publieurs 5.6k Vues
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • doekiaD Hors-ligne
      doekia
      dernière édition par

      J'ai de très grosses tables dans mon shop et on me conseille de les vider. Comment faire?

      https://store.enter-solutions.com modules, support et assistance.

      Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
      Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

      Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

      1 réponse Dernière réponse Répondre Citer 0
      • doekiaD Hors-ligne
        doekia
        dernière édition par

        La réponse courte est "ne pas le faire"

        https://store.enter-solutions.com modules, support et assistance.

        Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
        Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

        Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

        1 réponse Dernière réponse Répondre Citer 0
        • doekiaD Hors-ligne
          doekia
          dernière édition par

          La réponse longue "oui mais", mais justement les explication sont longue. J'y reviens tout bientôt

          https://store.enter-solutions.com modules, support et assistance.

          Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
          Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

          Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

          1 réponse Dernière réponse Répondre Citer 0
          • Y Hors-ligne
            yoya971 legacy
            dernière édition par doekia

            Pour ma part j'utilise un script fait maison :

            <?php
                require(dirname(__FILE__).'/config/config.inc.php');
                
                /*******************************************************************************
                ********** Supression des Stats appelé par Cron *******************************
                *******************************************************************************/
                
                // nbr de jours à conserver
                $days=180; 	//connections etc ...
                $day_page=180; 	//page viewed
                
                // nbr de guest à conserver
                $nbGuest=5000;
                
                $interval=$days.' DAY';
                
                //1- ps_connections_pages delete
                $res=Db::getInstance()->Execute('
                DELETE FROM `'._DB_PREFIX_.'connections_page`
                WHERE time_start < DATE_SUB(NOW(), INTERVAL '.$interval.')');
                if(!$res)
                	die('error delete ps_connections_pages for '.$days.' day(s)');
                
                
                //2- ps_connections delete
                $res=Db::getInstance()->Execute('
                DELETE FROM `'._DB_PREFIX_.'connections`
                WHERE date_add < DATE_SUB(NOW(), INTERVAL '.$interval.')');
                if(!$res)
                	die('error delete ps_connections for '.$days.' day(s)');
                
                //3- ps_connections_source delete
                $res=Db::getInstance()->Execute('
                DELETE FROM `'._DB_PREFIX_.'connections_source`
                WHERE date_add < DATE_SUB(NOW(), INTERVAL '.$interval.')');
                if(!$res)
                	die('error delete ps_connections_source for '.$days.' day(s)');
                
                //4- ps_page_viewed delete
                $currentRange=DateRange::getCurrentRange();
                $endRange = $currentRange-$day_page;
                $res=Db::getInstance()->Execute('
                DELETE FROM `'._DB_PREFIX_.'page_viewed`
                WHERE id_date_range < '.$endRange);
                if(!$res)
                	die('error delete ps_page_viewed for '.$endRange.' date_range');
                
                //5- ps_guest delete
                $sql="SELECT `id_guest` FROM `ps_guest` ORDER BY `id_guest` DESC LIMIT 0, 1";
                $res = Db::getInstance()->ExecuteS($sql);
                if(!$res)
                	die('error select highest ps_guest');
                $currentGuest=$res[0]['id_guest'];
                $endGuest = $currentGuest-$nbGuest;
                $res=Db::getInstance()->Execute('
                DELETE FROM `'._DB_PREFIX_.'guest`
                WHERE id_guest < '.$endGuest);
                if(!$res)
                	die('error delete ps_guest for '.$endGuest.' endGuest');
                
                
            
            1 réponse Dernière réponse Répondre Citer 0
            • doekiaD Hors-ligne
              doekia
              dernière édition par doekia

              Ne m'en veux pas je vais regarder ça point par point.

              Bon les bons points:

              1. tu n'a pas fait de truncate que l'on voit dans plein de soluce à 2 reals et qui foutent un bordel pas croyable.
              2. tu n'a pas touché à des tables plus dangereuses

              Les moins bons:

              1. la directive NOW() n'a pas la même valeur tout au long du script et ça va poser des problèmes.
              2. connections_page et connections sont liées, si la connections_page pointe vers une connections inexistante ça fait du pas glop avec un id_connections égale à 0 dans les jointures. Pourquoi? à cause de 1. Impact mineur mais des "sessions" de page vont rester en mode camping. A noter de nombreuses connections sont recrées si elles n'existent plus.
              3. connections là attention lien de guest, un guest ne trouve plus sa connections. Impact mineur
              4. page_viewed, rien a dire
              5. guest là par contre id_guest est  sur customer, si il ne le trouve pas il le recrée - c'était bien la peine de supprimer.

              https://store.enter-solutions.com modules, support et assistance.

              Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
              Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

              Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

              1 réponse Dernière réponse Répondre Citer 0
              • O Hors-ligne
                okom3pom legacy
                dernière édition par

                Je veux bien la version longue 🙂

                1 réponse Dernière réponse Répondre Citer 0
                • B Hors-ligne
                  briko-bike
                  dernière édition par

                  Bonjour Doekia, même question pour un prestashop 1.7.3, peut on vider ces tables très imposantes, pour ma part ma BDD fait 250 Mo et seulement les tables Connection et Gest font 195 mo !!! si je peux totalement les vider ma BDD ne s'en portera pas plus mal 😉

                  merci

                  doekiaD 1 réponse Dernière réponse Répondre Citer 0
                  • doekiaD Hors-ligne
                    doekia @briko-bike
                    dernière édition par

                    @briko-bike

                    Si tu es prêt à perdre tout ton historique de visite, truncate les tables
                    Sinon il faut faire des requête en suppression un peu compliquées et compte tenu de ton volume nous parlons de plusieurs jours de maintenance pour faire cela - lock des tables connexion == aucune visite web possible.

                    J'ai fais un module de nettoyage - par cron qui résoud ce problème
                    https://store.enter-solutions.com/fr/75-housekeeper.html
                    Compte tenu de ton volume à nettoyer il faudra plusieurs semaine avant que les tables retrouvent une taille normale.

                    ATTENTION: Lorsque le cron s'exécute (ou que tu le lance manuellement) ton shop est quasi inaccessible en raison des locks en suppressions sur des tables essentielles.

                    Il (le module) limite les suppressions à 10'000 paniers et 25'000 connexions/guest par exécution afin de ne pas mettre le bazar dans trafic .

                    https://store.enter-solutions.com modules, support et assistance.

                    Je précise que je n'ai pas fait ni Paco-Rabane, ni Poudlard 2ème langue - je ne suis ni devin, ni magicien.
                    Fournissez un maximum d'information dans vos questions, version exacte du coeur et de vos modules, si besoin un peu d'histoire sur votre shop et vos recherches, les modules tiers installés, ...

                    Si mon intervention vous a aidé, n'hésitez pas à me remercier: https://ko-fi.com/A153227G

                    1 réponse Dernière réponse Répondre Citer 0
                    • Premier message
                      Dernier message
                    bug
                    26 sujets
                    1.6
                    24 sujets
                    front-office
                    11 sujets
                    1.5
                    8 sujets
                    1.7
                    5 sujets
                    système
                    4 sujets
                    administration
                    3 sujets
                    hack
                    3 sujets
                    module
                    3 sujets
                    performance
                    3 sujets
                    smtp
                    3 sujets
                    transporteurs
                    3 sujets
                    dashboard
                    2 sujets
                    https
                    2 sujets
                    paypal
                    2 sujets
                    promotions
                    2 sujets