Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je me suis retrouvé il y a quelques temps à la limite de mon offre d'hébergement au niveau de la taille de ma base de données. Mon forum grandissant de jour en jour, j'approchais dangereusement de la limite des 100Mo. Les tables les plus lourdes étant celles de recherche (pun_search_x), celles qui indexent les mots, j'ai désactivé l'indexation et supprimé tous les accès à la recherche en attendant de trouver une solution.
Pour ce faire, fichier include/search_idx.php, ligne 87 : j'ai commenté toutes les lignes de la fonction update_search_index($mode, $post_id, $message, $subject = null)
N'ayant pas vraiment le temps ni l'envie de changer d'hébergement pour le moment (ça m'obligerai à passer sur un serveur virtuel voir un serveur privé) et la recherche étant un élément assez important dans un forum, je dois trouver un moyen de ré-activer la recherche sans utiliser l'indexation.
Si quelqu'un s'est déjà lancé dans l'aventure je suis preneur, sinon tous les conseils sont les bienvenus. Ma principale piste pour le moment est d'utiliser une condition de la forme
where message LIKE '%mot_clef%'en ayant au préalable préparé le texte entré dans le champ de recherche (cas de plusieurs mots, utilisation des " " pour une recherche de l'expression complète, ...)
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
La technique utilisé par Mpok sur ce forum ne te conviendrait pas ? A savoir deux bases distinctes, l'une pour les données "de base" et l'autre pour les infos de recherche.
...
Hors ligne
Je crains d'arriver une nouvelle fois en limite de stockage, j'avais 70Mo d'indexation quand je l'ai désactivé, je ne dois pas être loin des 100Mo maintenant
. Après je pourrais peut-être réduire un peu le poids en modifiant la longueur minimum des mots à indexer et en supprimant certains mais à la longue je me retrouverai avec le même soucis, à moins de ne pas avoir de limite de taille de base...
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Sans indexation, ça risque de ramer, non ?
Si les tables d'index sont aussi grosses, c'est qu'il y a beaucoup de messages, donc un "LIKE %%" va être lent.
La suppression de certains mots dans le stopword semble déjà une piste à tenter avant d'en arriver à la suppression de l'indexation. Le gain peut atteindre assez facilement 15%, voire 20.
Ensuite, une autre piste possible (mais avec perte d'infos) : n'indexer que les posts récents (par exemple ceux de l'année en cours). Bon, évidemment, on perd la recherche sur les messages ancients. D'autre part, il faut relancer lea ré-indexation genre tous les mois pour faire coulisser la période.
Hors ligne
Oups, je n'avais pas vu ces deux réponses.
@Mpok : Je vais essayer ce soir en local de voir quels sont les mots les plus indexés et si je peux les ajouter en stopwords, et peut-être augmenter la taille minimum pour indexation.
@adaur31 : j'ai un PackPersoInitial chez 1and1, et le fait de monter en "gamme" dans le mutualisé ne permet pas d'avoir une plus grande base de données.
En fouillant le fichier "search.php" je suis tombé sur cette ligne
// Detect two byte character sets
$multibyte = (isset($lang_common['lang_multibyte']) && $lang_common['lang_multibyte']) ? true : false;et il semblerait que la recherche ne passe pas par les tables d'indexation si on passe cette variable à "true".
Est-ce que quelqu'un à déjà fait l'essai ?
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Certes, cela ne fait que déplacer le problème...
Mais je te conseille de changer d'hébergeur, tu peux avoir mieux et moins cher...
10 bdd, 100 go de traffic... pour 1.80 € / mois... A toi de voir, mais perso je trouve que cette offre c'est juste de l'arnaque 
Hors ligne
J'ai passé la variable "$lang_common['lang_multibyte']" à true et je peux utiliser la recherche sans indexation, ça utilise de base une condition en "like %%", plus gourmande en ressource machine mais ça n'a pas l'air de s'en ressentir pour le moment, je verrais à l'usage.
Peux-tu me donner un lien vers l'offre dont tu parles, ainsi que l'éventuelle taille maximum de base autorisée ? Parce qu'avoir 10 bdd de 100Mo chacune ne va pas résoudre mon problème, je doute pouvoir indexer les messages sur plusieurs bases différentes en fonction de la place.
Pour ce qui est de l'arnaque dont tu parles, je n'en vois nulle part n'ayant eu aucun soucis jusqu'à aujourd'hui avec mon offre d'hébergement.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Parce qu'avoir 10 bdd de 100Mo chacune ne va pas résoudre mon problème, je doute pouvoir indexer les messages sur plusieurs bases différentes en fonction de la place.
http://www.punbb.fr/forums/viewtopic.ph … 821#p80821
Ce n'est pas ce que Mpok fait ici ?
Cela me semble une bonne solution 
Hors ligne
Il utilise une base pour l'indexation et une autre pour le reste du forum, donc une fois la taille limite dépassée on se retrouve avec le même problème 
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Il utilise une base pour l'indexation et une autre pour le reste du forum, donc une fois la taille limite dépassée on se retrouve avec le même problème
Ok, j'avais pas compris ça 
Enfin, je pense qu'il est possible d'utiliser une table pour l'indexation et une autre pour le reste (j'avais compris ça comme ça au début), moyennent pas mal de modifications, mais je pense que tu es assez balèze pour les faire 
Hors ligne
Pages : 1