Bonsoir @Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
1-Recherche Full-Text : optimiser les recherches de texte dans vos bases de données
2- Faire appel auBonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
etBonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
3- Utiliser le serveur Memcached ( Version WD-WB23 et supérieur à mon avis )
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Trois alternatives...
Edité : Ajout d'une vidéoCliquez pour agrandir...
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
WD Accèlération des recherches sur une BDD
Discussion dans 'Sujets Divers' créé par LAPIPE2018, Jan 8, 2019.
La méthode Full-text ne réduira pas le nombre de requête, puisque je vais chercher les articles chaque fois en éxécutant la requête, et je vais toujours accèder au serveur 10 fois, en Wifi, ça peut ramer
La méthode des Vue suppose que les critères de construction des vues sont connu d'avance,
Les fonctions memcached risque d'être la solution probable, parce qu'elle stocke les résultats des requêtes récurrents.
Si nous mettons en mémoire, 10000 enregistrement, en supposant que nous ayons 200 caractères en memoire, quelle taille de mémoire sera occupé pour stocé en mémoire ?
Merci
Salut,
Une solution que j'utilise pour diminuer les accès à la base par requête est la suivante :
- 1°) Uniquement des requêtes SQL sur ma base HF
- 2°) Controle des frappes dans le champ de recherche (chaque une seconde (ou 50 ms à vous de définir en variable?) si aucune frappe/touche détectée alors je fais la requête)
Cela permet de ne pas systématiquement lancer une requête sur chaque caractère saisi.
Bonjour,
Pour ma part, j'utilise un tableau de structure contenant les données à afficher, (quand les données ne varie pas beaucoup)
Je met un hsurveille() et je récupère simplement l'enregistrement modifier
J'utilise normal les taches parallèles pour éviter des blocages d'interfaces sur en wifi...
Exemple :
Code (Windev):
De cette manière une seule grosse requête qui prend entre 2 et 5 secondes au démarrage et ensuite tout est fluide et ne ralentit pas le reste du réseau et le hsurveille évite les aller retour inutile.
Évidement si les données varie beaucoup, ca peut devenir pire car on va avoir des données à récupérer même si l'utilisateur en à pas besoin.
S'il peut y avoir plusieurs enregistrement modifié en même temps, tu peux aussi mettre un Timer dans ta procédure _RaffraichitDonnee.
Exemple : Une expédition est faite et modifie la quantité stock de 10 articles.
Si ton hsurveille est sur ta table articles, tu vas avoir 10x ta requête relancer sur x nombre de poste.
En mettant un timer de 1 seconde par exemple, ta requête va être lancer seulement 1x et qui va récupérée tes 10 articles modifiés.
FinTimersys(1)
Timersys(_RecupereDonnee, 1s, 1)
De cette manière chaque fois que ton hsurveille te lance un signal, ton FinTimersys(1) va bloquer ton timer et ce lancera que, seulement si ça fait plus de 1 sec que tu as reçu ton dernier signal de hsurveille.
Tu peux aussi simplement garder les numéro que le hsurveille te renvoie dans un tableau en mémoire et seulement si l'utilisateur veut visualiser un enregistrement, tu valide si l'enregistrement à été modifier dans ton tableau et seulement là tu va raffraichir cette enregistrement avant de lui afficher
À toi de voir selon ton besoin exacte.
En espérant que ça puisse t'aider![]()
aminej76 apprécie ceci.
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Si le nombre de lignes est très grand (> 100 000) la recherche devient très lourde.
En plus, j'ai trouvé une difficulté pour faire une recherche sur la désignation (désignation contient MEUBLE , NOIR )
Merci d'avance.
Bonjour
Est ce que la désignation est déjà est une clé ?