Package Optimiser

Fichiers du package

FichierDescription
optimiser.php

Gestion des optimisations de la base de données en cron

Proposer une amélioration

Liste des fonctions

Tache appelée régulièrement

integer genie_optimiser_dist( integer $t )

Paramètres

  1. integer $t

    Timestamp de la date de dernier appel de la tâche

Retour

  • integer

    Timestamp de la date du prochain appel de la tâche

Package

Proposer une amélioration

Supprime les relicats d'éléments qui ont disparu

void optimiser_base( integer $attente = 86400 )

Paramètres

  1. integer $attente = 86400

    Attente entre 2 exécutions de la tache en secondes

Retour

  • void

Package

Note

  • Heure de référence pour le garbage collector = 24h auparavant
Proposer une amélioration

Supprime des liens morts entre tables suite à la suppression d'articles, d'auteurs, etc...

void optimiser_base_disparus( integer $attente = 86400 )

Paramètres

  1. integer $attente = 86400

    Attente entre 2 exécutions de la tache en secondes

Retour

  • void

Appelle le pipeline

Package

Note

  • Maintenant que MySQL 5 a des Cascades on pourrait faire autrement mais on garde la compatibilité avec les versions précédentes.
Proposer une amélioration

À chaque appel, une nouvelle table est optimisée (la suivante dans la liste par rapport à la dernière fois).

void optimiser_base_une_table( )

Voir également

Variables globales

  • int $GLOBALS ['meta']['optimiser_table']

Package

Proposer une amélioration
integer optimiser_sansref( string $table , string $id , Resource $sel , string $and = '' )

Paramètres

  1. string $table

    Nom de la table SQL, exemple : spip_articles

  2. string $id

    Nom de la clé primaire de la table, exemple : id_article

  3. Resource $sel

    Ressource SQL issue d'une sélection (sql_select) et contenant une colonne 'id' ayant l'identifiant de la clé primaire à supprimer

  4. string $and = ''

    Condition AND à appliquer en plus sur la requête de suppression

Retour

  • integer

    Nombre de suppressions

Package

Note

  • Mysql < 4.0 refuse les requetes DELETE multi table et elles ont une syntaxe differente entre 4.0 et 4.1 On passe donc par un SELECT puis DELETE avec IN
Proposer une amélioration