Supprimer les enregistrements orphelins dans MySQL ?

Discussion dans 'Administration d'un site Web' créé par Sébastien Night, 11 Avril 2007.

  1. Sébastien Night
    Sébastien Night Nouveau WRInaute
    Inscrit:
    6 Avril 2007
    Messages:
    17
    J'aime reçus:
    0
    J'ai appliqué sur un de mes forums phpBB (70 000 messages, une base de données trop grande pour l'hébergeur) ce script pour alléger les 2 000 000 d'enregistrements de ma table search_word_match.

    Malheureusement, le mec qui a conçu ce script n'a pas eu le bon sens de penser à l'intégrité de la base de données. Du coup ça m'a foutu en l'air la logique de ma BDD. J'assume la responsabilité d'avoir appliqué le script sans sauvegarde, mais je suis quand même blasé.

    J'explique :
    Quand on écrit un post dans phpBB, celui-ci recense les mots contenus (en appliquant un filtre).
    Ensuite les mots sont mis dans une table mots.
    Puis pour chaque mot on crée un lien entre l'id du post et l'id du mot dans une table match.

    Donc j'avais 120 000 mots et 2 000 000 de match
    Le script me propose de choisir des mots à virer, j'ai viré tous les mots de moins de 3 lettres ainsi que les plus utilisés sur le forum (au moins 400 000 match de gagnés a priori).

    Sauf que ce script supprime bêtement les mots en premier et les match ensuite. Donc comme chez moi, il a planté après avoir viré les mots, je suis pris au piège puisqu'il m'est impossible de retrouver les match "orphelins" !!!!! :evil:

    Ma question technique est donc :
    Comment faire pour virer les éléments orphelins d'une table d'associations sous MySQL ?


    Merci d'avance,
    SBN
     
  2. arnaudmn
    arnaudmn WRInaute passionné
    Inscrit:
    11 Mai 2005
    Messages:
    1 038
    J'aime reçus:
    2
    delete from table1
    where not exists(select quelquechose from table2 where table1.unchamp = table2.unchamp)
     
  3. Sébastien Night
    Sébastien Night Nouveau WRInaute
    Inscrit:
    6 Avril 2007
    Messages:
    17
    J'aime reçus:
    0
    Bon j'ai trouvé ce post et j'ai bidouillé la requete SQL de Suede.

    Je crois que j'avance, j'arrive à compter les orphelins :
    Code:
    SELECT ls.word_id, ls.word_text, COUNT(wm.word_id) as entries 
    FROM `phpbb_search_wordmatch` as wm 
    LEFT JOIN `phpbb_search_wordlist` as ls ON ls.word_id=wm.word_id 
    WHERE ls.word_text IS NULL
    GROUP BY wm.word_id 
    ORDER BY entries DESC 
    
     
  4. Sébastien Night
    Sébastien Night Nouveau WRInaute
    Inscrit:
    6 Avril 2007
    Messages:
    17
    J'aime reçus:
    0
    Des requêtes imbriquées sous MYSQL ? Je crois que c'est impossible !
    Je vais quand même essayer.

    Edit : j'ai fait le total, si j'arrive à tout virer ça va faire 648954 enregistrements en moins et je pourrai peut etre récupérer l'accès public à ma base :roll: (OVH l'a fermée en écriture !)

    Re-edit :
    Et j'ai gagné ..... 0 octets 8O
     
  5. Suede
    Suede WRInaute passionné
    Inscrit:
    4 Octobre 2002
    Messages:
    2 441
    J'aime reçus:
    0
    Tu peux sinon vider les tables et reconstruire ton index grace à des mods.
     
  6. Sébastien Night
    Sébastien Night Nouveau WRInaute
    Inscrit:
    6 Avril 2007
    Messages:
    17
    J'aime reçus:
    0
    J'ai décidé de payer pour un quota de 100 Mo.

    Edit : après optimisation de la table je n'ai gagné que 5 Mo au final.
     
Chargement...
Similar Threads - Supprimer enregistrements orphelins Forum Date
[JavaScript Array] modifier un code html sans le supprimer/recréer Développement d'un site Web ou d'une appli mobile 20 Juin 2022
Impossible de supprimer une page Facebook Facebook 15 Juin 2022
comment supprimer articles fantômes référencés Problèmes de référencement spécifiques à vos sites 12 Mai 2022
Unused CSS et outils pour supprimer feuilles de style inutilisées Développement d'un site Web ou d'une appli mobile 27 Avril 2022
Pénalité Penguin. Doit-on supprimer les backlinks toxiques en 1 fois ? Netlinking, backlinks, liens et redirections 15 Avril 2022
comment supprimer définitivement une page zombie ? Problèmes de référencement spécifiques à vos sites 5 Décembre 2021
Supprimer landing page homepage, rediriger vers page réelle Problèmes de référencement spécifiques à vos sites 28 Novembre 2021
Comment supprimer un onglet personnalisé (app) sur Facebook Facebook 6 Septembre 2021
Désindexer ou supprimer ? Débuter en référencement 25 Mai 2021
Supprimer événement groupe FB crée par un membre Facebook 7 Avril 2021
Comment supprimer un Pixels Facebook ? Facebook 19 Mars 2021
Supprimer la version en cache de dizaines de PDF Crawl et indexation Google, sitemaps 11 Janvier 2021
Supprimer son compte google maps pour cause d'avis négatifs YouTube, Google Images et Google Maps 10 Décembre 2020
Supprimer mon site de Similarweb ? Ou modifier les données ? Administration d'un site Web 26 Novembre 2020
RGPD : faire supprimer par Facebook l'ensemble de mes informations Droit du web (juridique, fiscalité...) 2 Novembre 2020
Search Console Supprimer des doublons Crawl et indexation Google, sitemaps 26 Octobre 2020
Contenu Obsolète supprimer ou noindex ? Débuter en référencement 16 Octobre 2020
Supprimer pages indexées Crawl et indexation Google, sitemaps 11 Octobre 2020
Supprimer des pages en moasse (avec l'accent de Gad) Crawl et indexation Google, sitemaps 5 Octobre 2020
Galère pour supprimer index.php URL Rewriting et .htaccess 12 Août 2020