osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Comment réduire la taille de sa base de donnée ?, J'utilise 30 Mo sur 40 Mo
petitben62
posté 18 Mar 2008, 20:34
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



Bonjour,
Je viens vers vous aujourd'hui pour connaitre vos differents avis, différentes solutions pour diminuer la taille de ma base de donnée.

Merci de votre aide !


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
petitben62
posté 18 Mar 2008, 20:43
Message #2


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



CITATION(leirisset @ 18 Mar 2008, 14:39) [snapback]274176[/snapback]
La première solution est déjà de supprimer les tables qui correspondent à des contributions que tu as installé mais que tu n'as pas gardé, donc ces tables sont inutiles.


C'est déjà fait wink.gif

Est ce que supprimer tous les comptes de ceux et celles qui ne se sont plus connectés depuis 2 ans pourrait faire gagner de la place ?


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
petitben62
posté 18 Mar 2008, 20:55
Message #3


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



CITATION(leirisset @ 18 Mar 2008, 14:51) [snapback]274178[/snapback]
souscrire à une offre supérieure chez ton hébergeur.


Offre supérieure chez OVh pour avoir 100 Mo de plus .. c'est 70€..pas énorme mais j'optimise d'abord.. en faisant le menage aujourd'hui.. je n'aurais plus a le faire demain.. Mais il est clair que je devrais y passer assez rapidement.


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
delete
posté 19 Mar 2008, 00:44
Message #4


2eme dan OSC
Icône de groupe

Groupe : Bannis
Messages : 3022
Inscrit : 12-November 07
Lieu : Massilia
Membre no 19718



Tu as vidé ta table "sessions" ?

les résidus de shopping_cart ? (je n'ai pas la table en tête)

Dans ce cas (un cleanup), la base risque de conserver la même taille mais de ne plus grossir.
Go to the top of the page
 
petitben62
posté 19 Mar 2008, 07:40
Message #5


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



Il n'y a aucun risque a vider la table session ? j'ai tellement eu de soucis de session que lorsque je vois ecris session.. je me sauve direct !!

Et supprimer les "residus" de shopping cart .. cela ne devrait il pas supprimer le panier que mes clients ont en mémoire ? Je pense bien que si.. Non ?


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
NoZic
posté 19 Mar 2008, 09:48
Message #6


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Bonjour,

Pour faire de l'auto-user-maintenance (toujours un mot de mon cru...), j'avais lu un truc sur un site php, le type mettait dans ce qui correspondrait pour OsC à la page index.php (pas la page header.php, car elle fait dèjà pas mal de requêtes, donc sur la première page du site, qui est appelée au moins une fois par jour, enfin j'espère pour toi...), une requête qui effaçait les entrées vieilles de plus de deux jours dans sa table "session", plus d'autres tables qui stockent des données temporaires. Pas con du tout, c'est le visiteur qui fait la maintenance de son site juste en le visitant...

Bien sûr, tu perds en temps d'affichage du coup... enfin tu peux te débrouiller pour réduire au maximum la requête, mais son efficacité aussi. Faut trouver le juste milieu...

CITATION
Il n'y a aucun risque a vider la table session ?
Bah non, enfin pas celles de plus deux jours, tu connnais des gens connectés h24 sur ton site ?? Enfin tu peux adapter le temps bien sûr, mettre supérieures à une semaine, un mois etc... [BoEDIT] mieux, tu enregistres tes sessions dans un dossier au lieu de la BDD, tu fais une visite sur ton site pour vérifier que ça fonctionne puis tu la vide définitivement [EoEDIT]

CITATION
Et supprimer les "residus" de shopping cart .. cela ne devrait il pas supprimer le panier que mes clients ont en mémoire ? Je pense bien que si.. Non ?
Bah si bien sûr (enfin si ce que tu nommes "résidus de..." c'est les tables customers_basket et customers_basket_attributes).

Si tu ne gères pas les stats sur les bannières, tu peux vider complètement banners_history.
Si tu mets en cache dans la base, de temps en temps tu peux vider la table cache, mais elle reprendra une taille identique ou presque aux prochaines visites.
Tu peux vider specials si tu ne fait pas de promo en ce moment.
La table whos_online, de plus de deux jours par exemple (enfin si ça ne te dérange pas de perdre l'historique de tes connectés).

Enfin, le mieux c'est de regarder les tables que tu n'utilises pas ou dont les infos ne te sont pas essentielles (comme par exemple toutes les tables orders si tu réenregistres tes commandes dans un ERP ou une Ges Co et que tu te fous de l'historique des commandes sur ton site... euh le fait pas, quoi... c'est un exemple très conditionnel) et de les vider soit manuellement, soit par requêtes dans une page comme décrit plus haut.


--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 
xaglo
posté 19 Mar 2008, 10:18
Message #7


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



30Mo me parait énorme.

tu as beaucoup d'articles? beaucoup de clients? la boutique fonctionne depuis longtemps?

tu as regardé quelle(s) table(s) etai(en)t excessivement grosse(s)?


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
petitben62
posté 19 Mar 2008, 12:37
Message #8


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



30Mo me parait énorme. Moi aussi ca me parait énorme !

tu as beaucoup d'articles? 280

beaucoup de clients? 6000 .. j'ai commencé a supprimer ceux de 2005 qui n'ont plus passé commande, ou qui ne se sont plus reconnecté depuis..

la boutique fonctionne depuis longtemps? depuis janvier 2005

tu as regardé quelle(s) table(s) etai(en)t excessivement grosse(s)?
adress_book 1.5Mio
Orders 1.9Mo
Orders_products 1.9 Mio
Sessions 1.1Mio
Visitors 47 Mio !!! j'vais m'occuper de celle la.. elle est passé à la trappe !

Je ferais un petit " edit " pour completer et repondre a cette question..

Ce message a été modifié par petitben62 - 19 Mar 2008, 13:00.


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
xaglo
posté 19 Mar 2008, 13:20
Message #9


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



la table 'visitors' n'existe pas dans une MS2 de base, elle vient d'une contribution...

la table clients ne devrait pas être très lourde, ça ne me semble pas indispensable de la nettoyer. Si tu le fais, alors fais le proprement en nettoyant aussi les tables liées (adress_book, customer_info, _baskets, baskets_attributs...). Le plus sûr pour ne rien oublier, même si c'est fastidieux, est de le faire via l'admin osc

N'hésite pas à vider ET optimiser la table session (elle peut gonfler vite en "pertes"), tu peux aussi optimiser toutes les tables qui en ont besoin

pour info, ma boutique avec 800 produits et 4800 clients fait 12.5Mo, sans l'avoir optimisée depuis un moment. Pour qu'elle ne gonfle inutilement, j'ai quelques cron qui tournent dessus, notamment pour vider les paniers non validés après 1 mois et je n'ai pas de soucis avec la table sessions qui ne se viderait pas automatiquement comme chez certains...

Bon code


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
NoZic
posté 19 Mar 2008, 15:18
Message #10


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Non mais j'ai pas mis ça en place, c'était un truc que j'ai lu quelque part qui me paraissait pas con, mais qui augmente forcément le temps d'affichage de la page. Donc pas forcément à faire, mais dans le cas de ptitben62, qui va saturer en place, un truc auto paraissait bien alors... j'ai posté, c'est une idée, si ça peut inspirer...

Mais le truc des cron c'est bien aussi (voir mieux en fait pour éviter des requêtes).

C'est quoi cette contrib' de fou qui fait des tables (la page qui requête cette table, elle doit ramer...) de "47 Mio" ?

Et Xaglo, qu'entend tu par:
CITATION
ET optimiser la table session (elle peut gonfler vite en "pertes"),
Ca m'intéresse tout ce qui touche à l'optimisation...
Tu voudrais dire ne pas enregistrer dans la session certaines données inutiles pour ton site ?

Rappelons, pour comprendre ce que je veux dire, le contenu d'une ligne dans la table session:
sesskey 203822a35c819c7e779120b5033a9f6e
expiry 1155999490
value
cart|O:12:"shoppingCart":5:{s:8:"contents";a:0:{}s:5:"total";i:0;s:6:"weight";i:0;s:6:"cartID";N;s:12:"content_type";b:0;}language|s:6:"french";languages_id|s:1:"4";currency|s:3:"EUR";navigation|O:17:"navigationHistory":2:{s:4:"path";a:2:{i:0;a:4:{s:4:"page";s:9:"index.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:0:{}s:4:"post";a:0:{}}i:1;a:4:{s:4:"page";s:9:"index.php";s:4:"mode";s:6:"NONSSL"; s:3:"get";a:2:{s:5:"cPath";s:1:"1";s:6:"osCsid";s:32:"203822a35c819c7e779120b5033a9f6e";}s:4:"post";a:0:{}}}s:8:"snapshot";a:0:{}}

Et que le contenu de value change beaucoup suivant ce que vous avez fait sur le site lors de cette session, voir celle-ci:

cart|O:12:"shoppingcart":4:{s:8:"contents";a:1:{i:28;a:1:{s:3:"qty";s:1:"1";}}s:5:"total";i:0;s:6:"weight";i:0;s:12:"content_type";b:0;}language|s:6:"french";languages_id|s:1:"4";currency|s:3:"EUR";navigation|O:17:"navigationhistory":2:{s:4:"path";a:7:{i:0;a:4:{s:4:"page";s:9:"index.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:0:{}s:4:"post";a:0:{}}i:1;a:4:{s:4:"page";s:9:"index.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:2:{s:5:"cPath";s:1:"1";s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:0:{}}i:2;a:4:{s:4:"page";s:16:"product_info.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:3:{s:11:"products_id";s:2:"28";s:6:"action";s:11:"add_product";s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:3:{s:11:"products_id";s:2:"28";s:1:"x";s:2:"20";s:1:"y";s:1:"6";}}i:3;a:4:{s:4:"page";s:17:"shopping_cart.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:1:{s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:0:{}}i:4;a:4:{s:4:"page";s:21:"checkout_shipping.php";s:4:"mode";s:6:"NONSSL"; s:3:"get";a:1:{s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:0:{}}i:5;a:4:{s:4:"page";s:9:"login.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:1:{s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:0:{}}i:6;a:4:{s:4:"page";s:18:"create_account.php";s:4:"mode";s:6:"NONSSL"; s:3:"get";a:1:{s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:19:{s:6:"action";s:7:"process";s:6:"gender";s:1:"m";s:9:"firstname";s:4:"Titi";s:8:"lastname";s:6:"TOTO";s:3:"dob";s:10:"06/06/1966";s:13:"email_address"; s:18:"titi.toto@tata.fr";s:7:"company";s:0:"tata";s:14:"street_address";s:7:"csdvsdv";s:6:"suburb";s:0:"";s:8:"postcode";s:5:"75001";s:4:"city";s:6:"PARIS"; s:5:"state";s:6:"FRANCE";s:7:"country";s:2:"73";s:9:"telephone";s:14:"01 30 30 30 30";s:3:"fax";s:0:"";s:8:"password";s:6:"youpi";s:12:"confirmation";s:6:"youpi";s:1:"x";s:1:"0";s:1:"y";s:1:"0";}}}s:8:"snapshot";a:4:{s:4:"page";s:21:"checkout_shipping.php";s:4:"mode";s:6:"NONSSL";s:3:"get";a:1:{s:6:"osCsid";s:32:"125d1d12f034dc3f6711a073fa620c46";}s:4:"post";a:0:{}}}customer_id|i:2;customer_first_name|s:4:"Toto";customer_default_address_id|i:2;customer_country_id|s:2:"73";customer_zone_id|i:0;

Ce message a été modifié par gentag - 19 Mar 2008, 15:24.


--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 
xaglo
posté 19 Mar 2008, 15:44
Message #11


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 14910
Inscrit : 22-November 02
Membre no 610



CITATION(gentag @ 19 Mar 2008, 15:18) [snapback]274351[/snapback]
Et Xaglo, qu'entend tu par:
CITATION
ET optimiser la table session (elle peut gonfler vite en "pertes"),

je ne suis pas spécialiste mysql, mais voilà dans mon langage approximatif ce que j'en ai compris:
Pour accélérer le traitement des bases les infos sont écrites temporairement dans un espèce de "cache" que tu retrouves dans phpmyadmin dans la colonne "perte", à coté de la colonne "taille" ou, quand tu affiches la structure d'une table, dans le tableau "Espace utilisé"

exemple
CITATION
Espace utilisé
Type Espace
Données 148 844 o
Index 18 432 o
Perte 125 780 o
effectif 41 496 o
Total 167 276 o
Optimiser la table


Cette "perte" augmente rapidement sur les tables très sollicitées comme la table 'sessions'
Le fait d'optmiser la table (OPTIMIZE TABLE `sessions` ) vide cette "Perte".

En général, ça ne fait jamais de mal à une base d'être entièrement optimisée, on gagne en espace disque.


--------------------
Ni Hot-line ni Service Après Vente, ces forums sont un lieu d'échanges.
Une Question? Rechercher / FAQ / docV1.pdf / docV2.pdf / contributions
Go to the top of the page
 
AL1
posté 20 Mar 2008, 12:04
Message #12


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 470
Inscrit : 16-May 02
Lieu : Oise Normande pays de bray
Membre no 183



Bonjour a tous,

Juste en passant un petit fichier à lancer en cron ou manuel (1ou 2 fois par mois) rectifiez-moi si je me trompe... Perfectible évidement.... wink.gif

CODE
<?php
mysql_connect('serveur_mysql', 'utilisateur_mysql', 'mot_de_passe_mysql');
$base = 'nom_de_la_base';
$table = mysql_list_tables($base);
//on prépare la requête
$sql = "OPTIMIZE TABLE ";
//on recherche toutes les données des tables
$req = mysql_query('SHOW TABLE STATUS');
while($data = mysql_fetch_assoc($req))
{
    //on regarde seulement les tables qui affichent des pertes
    if($data['Data_free'] > 0)
    {
        //et on l'inclut si elle comporte des pertes
        $sql .= '`'.$data['Name'].'`, ';
    }
}
//on enlève le ', ' de trop
$sql = substr($sql, 0, (strlen($sql)-2));
//et on optimise
mysql_query($sql);
mysql_close();
?>


Alain


--------------------
Oscommerce : 2.2 MS2 | AdminMS2fr V2.3 | BoxImageThemaMS2fr V2.7 | Definemainpage v1.3.3 | MenubarV1 | WYSIWYG HTMLArea v1.7 FR | Sendorderhtmlemail v54 | Header Tags Controller v2.3.2 | Ultimate SEO URLs 2.2.2 | xsell_1_2_1 | PayPal_IPN-v2.3.3 | visibles country v1.1b | popup_image by grunt | step_by_step_orders_v1.7 | fckeditor-oscommerce_V2 | featured_products | Discount Coupon Codes 3.3. | Account Balance (gift certificate redemption) | N° facture séquentiel par Blanche Neige.

Projet en cours de finition :
Oscommerce : 2.3.3 FR | Ultimate_Seo_Urls_5_PRO_r205 | X_Sell_For_2.3.1_v3.0 | ipuv205A_for_osc231 | Instructions utf8 latin1 (Règle une bonne fois pour toute les problème d'accent) | AJAX attribute manager for 2.3.1 v2 mise à jour v2.8.10 | Category Description for OSCommerce 2.3.1 v1.08 | Product Attributes Sort Order v1.83a | Easy Populate v2.8-231 for osCommerce v2.3.1 | Quick_updates v2.9.2 | Theme Switcher v1.4.2 (retiré) | Fancier Invoice & Packing Slip for OSC 2.3.1 + Adaptation - Numéro de facture séquenciel par Blanche Neige | Dynamic Template System v2 | Order editor for2.3 v1.3 | Product Tabs V1.1 | KissIT - image Thumbnailer v1.0.0 | Option Types v2.3.1
Go to the top of the page
 
NoZic
posté 20 Mar 2008, 15:41
Message #13


Ceinture noire OSC
Icône de groupe

Groupe : Membres
Messages : 2871
Inscrit : 27-June 07
Lieu : Elancourt (78)
Membre no 18127



Bonjour,

Bah merci beaucoup pour les réponses Xaglo et AL1, je mourrais moins bête...


--------------------
"Les solutions existent toujours depuis longtemps, il suffit de les trouver."
Go to the top of the page
 
delete
posté 20 Mar 2008, 16:16
Message #14


2eme dan OSC
Icône de groupe

Groupe : Bannis
Messages : 3022
Inscrit : 12-November 07
Lieu : Massilia
Membre no 19718



CITATION(xaglo @ 19 Mar 2008, 15:44) [snapback]274356[/snapback]
Cette "perte" augmente rapidement sur les tables très sollicitées comme la table 'sessions'
Le fait d'optmiser la table (OPTIMIZE TABLE `sessions` ) vide cette "Perte".


Je dirais même que cette perte augmente très rapidement sur ces table très sollicitées et surtout celles qui ont une longueur variable comme products_description.

Sur des tables fixes le problème se pose pas ou peu.

De manière simplifiée : MySQL dans son fonctionnement affecte un bloc de données selon le profil de la table. Si la "place" restant dans un bloc de données ne suffit pas à y insérer une information, un nouveau bloc est affecté à la table et l'espace qui y restait précédemment est inutilisé jusqu'à ce le moteur y trouve preneur.

C'est un phénomène de fragmentation au même titre qu'un filesystem.

Enfin hormis l'aspect "culturel", merci AL1, ton code est très utile et trouve bien sa place dans le fonctionnement régulier d'un OsC. wink.gif

Go to the top of the page
 
petitben62
posté 20 Mar 2008, 21:31
Message #15


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 215
Inscrit : 25-October 05
Lieu : Boulogne sur mer (62)
Membre no 7623



Salut à tous..
Un peu de bidouille.. un brin de suppression.. et je suis arrivé a 22 Mo.. Merci à vous smile.gif
N'hésitez pas à proposer d'autres idées.. solution.. je suis preneur.. comme beaucoup !! Je pense..;


--------------------
osCommerce Online Merchant v2.2 RC1 W3C Valid FR.
Go to the top of the page
 
dero
posté 14 May 2008, 09:24
Message #16


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 298
Inscrit : 26-December 05
Lieu : lille
Membre no 8319



bonjour

j'ai appliqué le code de AL1 et j'ai le message d'erreur suivant

Code
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home.10.5/xxxxxx/www/clean_sql.php on line 9


et voici ce que j'ai a à la ligne 9

Code
while($data = mysql_fetch_assoc($req))


Quelqu'un aurait il une petite idée

Merci



--------------------
Version osCommerce Online Merchant v2.2 RC1 W3C Valid FR
et
Une ancienne creload 6 1.4

Super friendly admin menue ,Visible_countries_1.2b, define_mainpage_v1.3.3, inactive_user, HeaderTags_V_2.6.3, UltraPics_2_08, printable_catalog_3.6, AllProducts_V_4.7, Categories_Box_Bullet, scrolling_bestseller_with_images_1, Ultimate Html Emails v2.1, minimum order amount, Alternative Attribut 7, ultimate seo url 2.7, Quantity Price Breaks Per Product 1.3.5, Google XML Sitemap 1.3, Atos 2.3.0, TVA Intracommunautaire V5.1, Administration level account with categories 2.3.1fr, admin toolbar v4.1,
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 25th May 2013 - 18:33
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)