Jump to content

Base de données qui explose & produits dématérialisés


Recommended Posts

Bonjour à tous,

Je cherche à comprendre pourquoi la taille de ma base de données explose (Prestashop 16) et je constate que 25 produits dématérialisés actuellement en ligne (pourtant pas bien lourds : moins d'un méga avec deux photos en PNG de 50/100 Ko) occupent 200 Mo et 1 500 000 lignes (!!!) d'après Myadmin (fichier PS_PRODUCT_DOWNLOAD). 

J'ai certes de nombreuses catégories et sous-catégories mais cela me semble énorme. 

Aussi :

- Le nombre de catégories et sous-catégories a-t-il une incidence majeure (augmentation exponentielle ?) sur la taille de la BDD, tout comme la sécurisation SSL forcée sur toutes les pages de la boutique ?

- Les fichiers à télécharger des produits dématérialisés sont-ils stockés dans la BDD ?

- Si oui, est-il possible de les stocker ailleurs pour pouvoir ajouter des centaines d'autres produits sans dépasser le quota ?

- Quelle est la meilleure solution et/ou le meilleur module pour gérer des centaines de produits dématérialisés avec Prestashop car je suis bloqué en l'état ?

Je précise que le trafic et les stats pèsent très peu dans la BDD car le site est en cours de création et avec un trafic faible.

Au début, en tant que débutant, je pensais que le problème venait d'un bug au niveau du certificat SSL (genre un script en boucle ?) mais ma boutique a l'air d'être correctement sécurisée, avec le SSL qui fonctionne bien a priori.

Merci pour vos retours.

Neil

Link to comment
Share on other sites

Bonjour Doekia et merci pour ton retour. 

J'utilise en effet un module externe et a priori bien noté pour les déclinaisons de produits virtuels ou dématérialisés. Le site marche parfaitement, c'est juste que le fichier PS_PRODUCT_DOWNLOAD de la BDD se remplit de manière folle… Je cherche à comprendre pourquoi (après avoir cru que le SSL avec un script tournant en boucle était en cause) pour trouver une parade (je précise que je débute). 

S'il y a 1,5 million de customisations (1 customisation = 1 ligne donc ?) pour une vingtaine de produits, elles ne sont évidemment pas de mon fait et le module, s'il est en cause, doit donc les générer automatiquement (lien avec la durée de téléchargement du produit ?). 

Je note aussi que le fichier du produit virtuel disparaît parfois quand je rouvre la fiche produit, ce qui pourrait être fâcheux en cas d'achat. 

Ce qui m'étonne, c'est que j'ai plusieurs produits quasiment identiques (mêmes fiches, mêmes associations, mêmes catégories, etc. mais images différentes) mais que le nombre de lignes correspondant à l'ID du produit dans la BDD fluctue dans des proportions délirantes et sans raison apparente (logique, pour arriver à 1,5 millions de lignes).

Produit 1 : 4 lignes dans la BDD (même ID PRODUCT mais ID PRODUCT DOWNLOAD différents / quelle est la différence entre les deux ?)

Produit 2 : 9 lignes

Produit 3 : 9 lignes

Produit 4 : 9 lignes

Produit 5 : 9 lignes

Produit 6 : 42 lignes (avec 6 images au lieu d'une = pack compilant les produit 1 à 6)

Produit 7 : un millier de lignes

Le bug tient peut-être au fait que je duplique les produits (sans les images) pour gagner du temps, en changeant juste les images et le fichier à télécharger.

Si vous avez des idées pour corriger ce bug qui bloque le projet (BDD qui déborde vite et nécessite de restaurer une version précédente de taille normale) ou sur la meilleure manière d'encoder les produits, je suis preneur...

Neil

  

Link to comment
Share on other sites

C'est fait ! Mais à savoir si c'est dû au module tiers qui fonctionne bien au niveau du site et a de bonnes notes ou à la fonction Produits virtuels/dématérialisés de Prestashop...

Je cherche surtout un Forumeur qui a rencontré le même problème que moi et a trouvé une solution... 

A suivre !

Link to comment
Share on other sites

Merci Doekia et Eolia pour votre aide, c'est sympa !

Voici quelques captures d'écran de la BDD (240 Mo actuellement sur un quota de 800 Mo, et plus de 16 Go du jour au lendemain pour une BDD précédente passée en lecture simple par l'hébergeur puis remplacée par une ancienne base "normale" pour débloquer la situation), qui indique notamment 1,5 million de lignes.

Sur les bases qui atteignaient plusieurs gigas avant leur blocage, je suppose que la configuration est la même, en pire. 

Sur l'image BDD1 jointe, les tables sont classées par ordre décroissant de poids. 

Sur l'image BDD2, cela commence bien a priori (peu de lignes pour chaque ID_PRODUCT) puis on arrive à des milliers de lignes pour chaque ID_PRODUCT par la suite alors que les fiches des produits téléchargés sont les mêmes à quelques détails près.    

Cela m'intrigue et m'ennuie car je ne comprends pas d'où vient le problème (module externe / code natif / overrides… ?) et comment contourner ou solutionner le problème...

Quant à l'overrides, j'essaie de comprendre le concept et d'accéder aux fichiers en question...

Si cela vous inspire...

BDD1.JPG

BDD2.png

BDD3.JPG

BDD4.png

Link to comment
Share on other sites

Donc clairement il te manque un unique index que ton module tier à supprimé

Colonne	Type	
id_product_download	int(10) unsigned Incrément automatique	 
id_product	int(10) unsigned	 
display_filename	varchar(255) NULL	 
filename	varchar(255) NULL	 
date_add	datetime	 
date_expiration	datetime NULL	 
nb_days_accessible	int(10) unsigned NULL	 
nb_downloadable	int(10) unsigned NULL [1]	 
active	tinyint(1) unsigned [1]	 
is_shareable	tinyint(1) unsigned [0]	 

Index
PRIMARY	id_product_download
UNIQUE	id_product
INDEX	id_product, active

Pas de colonne id_product_attribute non plus nativement

Link to comment
Share on other sites

Bonjour,

Petit bilan après toutes ces galères :

- Le problème des lignes créées automatiquement par centaines de milliers dans la BDD PS_PRODUCT_DOWNLOAD semble résolu après avoir vidé la table qui posait problème, mis à jour mon module tiers pour les produits virtuels et téléchargé de nouveau les produits en repartant de 0.

- Je n'ai pas réussi à mettre à jour Prestashop vers la 16.1.23 en raison d'une erreur 504 Gateway Timeout mais ce n'est pas bien grave si le bug ci-dessus est solutionné.

- Des fichiers à télécharger disparaissent parfois des produits en raison d'une date d'expiration immédiate qui apparaît dans la table PS_PRODUCT_DOWNLOAD alors que j'avais laissé le champ vierge (pas de date d'expiration donc). C'est problématique en cas d'achat puisque le client ne recevrait pas le produit virtuel (Zip) mais pour contourner le problème, j'indique désormais une année très éloignée. Cela semble marcher mais je ne comprends pas pourquoi le bug ne se produisait pas à chaque fois (duplication des fiches produits peut-être en cause). 

- J'aimerais savoir à quoi correspond la mention ACTIVE dans la table PS_PRODUCT_DOWNLOAD. Mes produits sont toujours ACTIVE dans l'interface et sur le site mais dans certains cas, le fichier à télécharger avait disparu lorsque 0 figurait.

- Où pourrais-je vérifier d'une manière globale, dans les stats ou dans la BDD, qu'un fichier à télécharger reste bien actif et associé à chaque produit virtuel ? Comme certains disparaissent parfois aléatoirement, je me méfie...

Merci pour vos lumières !

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...