[Résolu] Table wp_posts ENOORRME

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #515304
    EdWong
    Participant
    Initié WordPress
    13 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.4.2
    – Version de PHP/MySQL : 5.3.14 / 5.1.63-cll
    – Thème utilisé : Sampression Lite
    – Extensions en place : ~30 dont Jetpack, Akismet, WP-Super Cache, BackWPup, Relevanssi, WordPress SEO…
    – Nom de l’hebergeur : Webhostingpad
    – Adresse du site : lesfuretsdugondor.info

    Problème(s) rencontré(s) : La table wp_posts de ma base de donnée contient près de 200.000 lignes et pèse plus d’1Go. Tout ça pour 1014 articles, 43 pages et 1400 medias attachés.

    Alors voila, le problème a été soulevé lors de mon précédent appel à l’aide sur ce même forum. La semaine dernière cette table wp_posts c’est corrompu suite a l’utilisation du plugin WP Optimize.

    Aujourd’hui rebelote, sauf qu’elle s’est corrompu suite à l’utilisation de la commande Optimiser de phpMyAdmin. sans passer par de plugin quelconque.

    Je soupçonne la taille exagéré de cette table d’y être pour quelque chose.

    Voici quelque informations sur la table wp_posts pour commencer:

    195.172 lignes !
    Données: 742,1Mio
    Index: 402,9Mio
    Total: 1 145,1Mio

    Comme dit plus haut, avec un millier d’articles on devrait pas arriver à 200.000 lignes. Ça me parait aberrant.

    Alors j’ai chercher dans la base de donnée d’où pouvait venir tout ce surplus, et voici le tableau des valeurs trouvées dans la colonne post_type de la table.

    Lignes post_type
    1394 attachment
    6 dc_quizme
    3 feedback
    189511 http
    82 nav_menu_item
    47 page
    1022 post
    3106 revision
    1 safecss

    On retrouve les posts, les pieces jointes, les pages, tout, mais avec en prime 189511 enregistrements de type « http ».

    Aucune idée de ce à quoi ils servent, mais en y regardant de plus près c’est bizarre.

    Voici un enregistrement de type http choisi parmi les 190 mille:

    Son contenu (post_content):

    O:26: »core_control_http_log_item »:6:{s:4: »args »;a:14:{s:6: »method »;s:3: »GET »;s:7: »timeout »;i:90;s:11: »redirection »;i:0;s:11: »httpversion »;s:3: »1.0″;s:10: »user-agent »;s:46: »WordPress/3.4.2; http://lesfuretsdugondor.info »;s:8: »blocking »;b:1;s:7: »headers »;a:1:{s:13: »Authorization »;s:164: »X_JETPACK token= »F4e@oBo7rXaV(DwoEHeUOGurrp0#RyG#:1:1″ timestamp= »1348696037″ nonce= »XcoeRxNAZg » body-hash= » » signature= »SLwW9JGDtw9MzyKX+qTD5RgxV7U= » version= »1.7″ »;}s:7: »cookies »;a:0:{}s:4: »body »;N;s:8: »compress »;b:0;s:10: »decompress »;b:1;s:9: »sslverify »;b:1;s:6: »stream »;b:0;s:8: »filename »;N;}s:3: »url »;s:150: »http://dashboard.wordpress.com/wp-admin/index.php?noheader=true&proxy&blog=25533275&page=stats&chart&unit=1&color=fresh&width=892&height=175&j=1%3A1.7″;s:8: »realtime »;i:1348696037;s:10: »transports »;s:12: »WP_HTTP_curl »;s:4: »time »;d:0.3542439937591552734375;s:6: »result »;a:4:{s:7: »headers »;a:12:{s:6: »server »;s:5: »nginx »;s:4: »date »;s:29: »Wed, 26 Sep 2012 21:47:18 GMT »;s:12: »content-type »;s:24: »text/html; charset=utf-8″;s:10: »connection »;s:5: »close »;s:4: »vary »;s:15: »Accept-Encoding »;s:8: »x-hacker »;s:108: »If you’re reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header. »;s:10: »set-cookie »;s:443: »wpc_wpc=account=edwardwong0&avatar=http%3A%2F%2F0.gravatar.com%2Favatar%2Fc0afdecf3b46f866ab363e491edd4d4b%3Fs%3D25%26amp%3Bd%3Dhttp%253A%252F%252Fs2.wp.com%252Fwp-content%252Fmu-plugins%252Fhighlander-comments%252Fimages%252Fwplogo.png%26amp%3Br%3DPG&email=edwardwonghau%40gmail.com&link=http%3A%2F%2Fgravatar.com%2Fedwardwong0&name=edwardwong0&uid=25439067&access_token=abb804453a281424d2eaf186e66f215cd6bb9aaf; path=/; domain=.wordpress.com »;s:7: »expires »;s:29: »Wed, 11 Jan 1984 05:00:00 GMT »;s:13: »last-modified »;s:29: »Wed, 26 Sep 2012 21:47:17 GMT »;s:13: »cache-control »;s:36: »no-cache, must-revalidate, max-age=0″;s:6: »pragma »;s:8: »no-cache »;s:15: »x-frame-options »;s:10: »SAMEORIGIN »;}s:8: »response »;a:2:{s:4: »code »;i:200;s:7: »message »;s:2: »OK »;}s:7: »cookies »;a:1:{i:0;O:14: »WP_Http_Cookie »:5:{s:4: »name »;s:7: »wpc_wpc »;s:5: »value »;s:352: »account=edwardwong0&avatar=http://0.gravatar.com/avatar/c0afdecf3b46f866ab363e491edd4d4b?s=25&d=http%3A%2F%2Fs2.wp.com%2Fwp-content%2Fmu-plugins%2Fhighlander-comments%2Fimages%2Fwplogo.png&r=PG&email=edwardwonghau@gmail.com&link=http://gravatar.com/edwardwong0&name=edwardwong0&uid=25439067&access_token=abb804453a281424d2eaf186e66f215cd6bb9aaf »;s:7: »expires »;N;s:4: »path »;s:1: »/ »;s:6: »domain »;s:14: ».wordpress.com »;}}s:8: »filename »;N;}}

    Son titre (post_title):

    GET http://dashboard.wordpress.com/wp-admin/index.php?noheader=true&proxy&blog=25533275&page=stats&chart&unit=1&color=fresh&width=892&height=175&j=1%3A1.7

    Son contenu filtré ? (post_content_filtered):

    <script type="text/javascript">jQuery.ajaxSetup({cache:true});</script>
    <!--[if lt IE 9]><script type="text/javascript" src="http://s2.wp.com/wp-includes/charts/flot/excanvas.min.js?ver=20120730"></script><![endif]-->
    <script type="text/javascript" src="http://s2.wp.com/wp-includes/charts/flot/jquery.flot.js"></script><script type='text/javascript' src='http://s0.wp.com/wp-includes/charts/flot/jquery.flot.selection.js'></script><script type='text/javascript' src='http://s1.wp.com/wp-includes/charts/flot/jquery.flot.retina.js'></script>
    <style type="text/css">
    #tooltip {
       position: absolute;
       display: none;
       color: #666;
       background: #fff;
       border: 1px solid #aaaaaa;
       padding: 3px 5px;
       -moz-box-shadow: 0px 1px 1px #d0d0d0;
       -webkit-box-shadow: 0px 1px 1px #d0d0d0;
       box-shadow: 0px 1px 1px #d0d0d0;
    }
    #tooltip p {
       margin: 0;
       font-size: 11px;
       position: relative;
       z-index: 12;
       max-width:250px;
    }
    
    #tooltip strong {
       font-weight: normal;
       color: #101010;
    }
    #tooltip .arrowlefttop, #tooltip .arrowleftbottom, #tooltip .arrowrighttop, #tooltip .arrowrightbottom {
       display: block;
       *display: none;
       height: 7px;
       position: relative;
    }
    #tooltip .arrowlefttop {
       background: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-left.png") no-repeat left top;
       left: -12px;
       top: 1px;
       margin-bottom: -7px;
    }
    #tooltip .arrowleftbottom {
       background: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-left.png") no-repeat left bottom;
       left: -12px;
       margin-top: -7px;
    }
    #tooltip .arrowrighttop {
       background: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-right.png") no-repeat right top;
       right: -12px;
       top: 1px;
       margin-bottom: -7px;
    }
    #tooltip .arrowrightbottom {
       background: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-right.png") no-repeat right bottom;
       right: -12px;
       margin-top: -7px;
    }
    
    td.legendLabel {
       text-align:left;
    }
    
    .stat-legend-table {
       padding: 2.5ex 0 2ex 50px;
    }
    
    @media only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {
       .stat-chart img.wpcom-loading-64 { width: 32px; height: 32px; }
       #tooltip .arrowlefttop, #tooltip .arrowleftbottom {
           background-image: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-left-2x.png") !important;
           background-size: 7px 7px;
       }
       #tooltip .arrowrighttop, #tooltip .arrowrightbottom {
           background-image: url("http://s0.wp.com/i/stats/stats-tooltip-arrow-right-2x.png") !important;
           background-size: 7px 7px;
       }
    }
    </style>
    <div id='stat-chart' class='stat-chart' style='background:#fff;text-align:center;direction:ltr;height:175px;width:892px;'><img class='wpcom-loading-64' src='http://s1.wp.com/i/loading/fresh-64.gif' style='margin-top: 70px;' /></div>
    <script type="text/javascript">
    // <![CDATA[
    jQuery( function($) {
           $( '#stat-chart' ).load( 'http://dashboard.wordpress.com/wp-includes/charts/flot-stats-data.php', {"height":175,"page":"stats","chart_type":"stats-data","target":"stat-chart","enable_zoom":"false","width":892,"blog":25533275,"context":null,"unit":1,"noheader":1,"site":false,"num":15,"synful":0,"chart":1,"wpadminstats":1} )
    } );
    // ]]>
    </script>

    Ca ira pour l’exemple, c’est le dernier enregistrement de ce type présent dans la table, et il date du 27/10, la date ou la table wp_posts à été corrompu la première fois.
    Depuis aucun nouvel enregistrement de ce type.

    Celui là a un css dans son contenu filtré, d’autres ont des pages html comme celle là:

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>404 Not Found</title>
    </head><body>
    <h1>Not Found</h1>
    <p>The requested URL /fpw-category-thumbnails/translations/1.5.6/fpw-fct-fr_FR.mo was not found on this server.</p>
    <hr>
    <address>Apache Server at svn.wp-plugins.org Port 80</address>
    </body></html>

    D’autres encore on carrément des scripts javascript. Bref y’a de tout et n’importe quoi là dedans. Mais en survolant quelque page, on y trouve beaucoup de chose relative aux plugins, divers et variés. Ça ressemble à des logs parfois.
    Bref, c’est très étrange, je sais pas d’où ca peut venir.

    Pour info le blog a 1an et 7 mois.
    Alors j’aimerai me débarrasser de ce surpoid, j’imagine que ca ralenti mon site d’une manière ou d’une autre, et ca rend les opération de sauvegarde/restauration encore plus pénible que ce qu’elles sont. Mais j’ai peur de casser des trucs.

    Merci pour votre aide.

    #857116
    luciole135
    Participant
    Maître WordPress
    13756 contributions

    Nettoyez la avec Clean Up (même s’il est vieux est parfaitement compatible avec toutes les versions de WP)
    http://wordpress.org/extend/plugins/clean-up/
    et optimisez là avec WP Optimize
    http://wordpress.org/extend/plugins/wp-optimize/

    #857117
    EdWong
    Participant
    Initié WordPress
    13 contributions

    A lire la description de Clean UP il a l’air de nettoyer les révisions d’articles et les sauvegarde automatique. C’est bien, mais ca ne suffira pas si il passe a coté du post_type http.

    Je vais tester sur une version locale avant de tenter quoi que ce soit. La dernière fois WP Optimize a tout foutu en l’air. La commande Optimize a pour effet de corrompre ma BDD. Avec un taux de réussite de 100% jusque là.

    #857118
    EdWong
    Participant
    Initié WordPress
    13 contributions

    MàJ: J’ai testé Clean UP et comme décrit il s’occupe des révisions et rien que des révisions d’articles.

    Résultat à la sortie ma table wp_posts reste énorme.

    De plus la requete SQL:

    DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = ‘revision’

    …s’est montré bien plus efficace sur ma table locale.

    Apres, j’ai teste la même requête, mais en remplaçant ‘revision’ par ‘http’

    DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = ‘http’

    Et là, ma BDD retrouve une taille normale. J’ai plus que 1945 lignes dans la table wp_posts, qui ne pèse plus que 5.5Mo après optimisation.
    La table pst_meta aussi se retrouve impactée, elle qui contenait plus d’un million de ligne, n’en fait plus que 20.000.

    Au final, je passe d’une BDD d’1.5Go a une de 24Mo !!! Et pas d’impact sur le fonctionnement du site, a priori. Mais j’hésite encore a faire tout ça du coté du site ne production.

    Qu’en dites vous ? J’ai vraiment besoin d’être rassuré dès que ca touche à la BDD. Je suis pas tres à l’aise avec.

    #857119
    Guy
    Participant
    Maître WordPress
    14833 contributions

    C’est ce que je t’aurai proposé (la suppression des http) un post type intitulé http ne m’évoque rien de bon.

    Je pense que tu risques moins à avoir une base de données de taille raisonnable, tu as de toute façon une sauvegarde qui te permettra de récupérer des éléments si il en manque.

    Il faudrait aussi tenter de trouver la raison de cet embonpoint exagéré, trouver l’extension qui écrit autant de données, cela peut faire penser à des plugins de stats, de sharings, de je ne sais pas trop quoi en fait.

    #857120
    EdWong
    Participant
    Initié WordPress
    13 contributions

    Je vais attendre une semaine ou deux par précaution, voir si de nouveau post type http apparaissent. Puis j’exécuterai la requête plus haut.

    Ceux que j’ai ont été rapatrié d’une précédente installation de WordPress perdue suite la la bourde du siècle (j’avais supprimer bêtement le dossier sur le disque).

    Aujourd’hui le site à été réinstallé, et j’ai quasiment installé les même plugins qu’auparavant. Et aucune nouvelle entrée en 1 semaine. Alors que quand on regarde l’horodatage de chaque entrée, y’en a plusieurs par minutes, parfois même deux dans la même seconde !!!

    Cependant quand on regarde le post_content, tous commencent par  » O:26: »core_control_http_log_item  » et en cherchant sur google on retrouve le code d’un plugin wordpress « Core Control« , je pense l’avoir installé il y a longtemps je ne sait plus trop pourquoi.
    Je pense que ca vient de lui.

    #857121
    EdWong
    Participant
    Initié WordPress
    13 contributions

    J’ai installé Core Control sur ma base locale, celle que j’avait netoyé. Et c’est bien lui qui était responsable des 200000 posts type http.
    A peine installé qu’il y avait déjà une dizaine de nouvelles entrée de ce type dans la BDD.

    Maintenant que j’en suis sûr, je vais nettoyer ma BDD en production.

    #857122
    Guy
    Participant
    Maître WordPress
    14833 contributions

    très bien, Core Control est un outils de débogage, il ne devrait pas être installé en production sauf à rechercher quelque chose de précis.

    Je marque résolu.

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.