Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1940 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Optimisation MySQL?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Optimisation MySQL?

n°533354
porksoda
Posté le 07-10-2003 à 15:49:00  profilanswer
 


 
Bonjour!
 
J'ai une base de données avec 360 000 enregistrements. C'est un dictionnaire. J'ai un index (INT) sur auto-increment. Quand je fais des SELECT's sur cette colonne, c'est rapide.
 
donc "SELECT * FROM mots WHERE mot_id = 344" est rapide
 
Mais quand je fais un SELECT sur le *texte* d'un mot donc:
 
"SELECT * FROM mots WHERE mot_mot = 'Lent'"
 
CA c'est TRÈS lent :( Je dois faire ce SELECT quand même assez souvent. Ca ralentis au point au j'ai un script timeout   :sleep:  
 
Une idée?
 
Merci!

mood
Publicité
Posté le 07-10-2003 à 15:49:00  profilanswer
 

n°533390
moazaaa
Le retour...
Posté le 07-10-2003 à 16:39:30  profilanswer
 

porksoda a écrit :


 
Bonjour!
 
J'ai une base de données avec 360 000 enregistrements. C'est un dictionnaire. J'ai un index (INT) sur auto-increment. Quand je fais des SELECT's sur cette colonne, c'est rapide.
 
donc "SELECT * FROM mots WHERE mot_id = 344" est rapide
 
Mais quand je fais un SELECT sur le *texte* d'un mot donc:
 
"SELECT * FROM mots WHERE mot_mot = 'Lent'"
 
CA c'est TRÈS lent :( Je dois faire ce SELECT quand même assez souvent. Ca ralentis au point au j'ai un script timeout   :sleep:  
 
Une idée?
 
Merci!
 


 
Indexer mot_mot ?
 
Pardon si c'est une connerie, j'ai que peu de notions en BDD :)


---------------
Ex-fumeur en quête d'identité.
n°533391
Taz
bisounours-codeur
Posté le 07-10-2003 à 16:41:55  profilanswer
 

non, c'est pas mal, mais ça va faire un index très très gros ... cela dit, vu le caractère statique d'un dictionaire, ça va

n°533395
porksoda
Posté le 07-10-2003 à 16:48:36  profilanswer
 

Oh!
 
Vous m'en apprenez toute une. Je pensais pas qu'on pouvait indexer du VARCHAR !  :D Je croyais que c'était réservé au numérique
 
Merci beaucoup, j'vais essayer ca!
 
De toutes façons Taz, la BD pèse déja 5MO alors que l'index soit gros ou pas...
 


Message édité par porksoda le 07-10-2003 à 16:51:07
n°533398
moazaaa
Le retour...
Posté le 07-10-2003 à 16:51:33  profilanswer
 

Taz a écrit :

non, c'est pas mal, mais ça va faire un index très très gros ... cela dit, vu le caractère statique d'un dictionaire, ça va


 
Cool, j'ai pas dit une connerie  [:audi]


---------------
Ex-fumeur en quête d'identité.
n°533476
simogeo
j'ai jamais tué de chats, ...
Posté le 07-10-2003 à 18:44:50  profilanswer
 

porksoda a écrit :

Oh!
 
Vous m'en apprenez toute une. Je pensais pas qu'on pouvait indexer du VARCHAR !  :D Je croyais que c'était réservé au numérique


[:w3c compliant] ..... euhhhhh t'as po du reflechir beaucoup sur le sujet quand même .... penses au moteur de recherche par exemple  :ange:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°533483
porksoda
Posté le 07-10-2003 à 18:50:42  profilanswer
 


Mouais mais les _vrais_ moteur de recherche dans ma tête n'utilise pas MySQL mais quelque chose de plus robuste et avec cette fonctionnalité que je pensais MySQL n'avait pas! :)
 

n°533512
mrbebert
Posté le 07-10-2003 à 19:28:59  profilanswer
 

A la rigueur, tu ajoutes une colonne indexée avec le premier caractère du mot.
Et dans ta requête, tu fais :
SELECT * FROM mots WHERE mot_first = 'L' AND mot_mot = 'Lent'
 
Normalement, il va d'abord rechercher les lignes respectant par 'L' (grace à l'index), puis comparer le mot complet seulement sur ces lignes :)  
(à vérifier avec un explain)


Message édité par mrbebert le 07-10-2003 à 19:29:44
n°533565
porksoda
Posté le 07-10-2003 à 20:40:09  profilanswer
 


Hey, merci mrBebert, ca semble bien ton truc.
 

n°533574
Taz
bisounours-codeur
Posté le 07-10-2003 à 20:50:09  profilanswer
 

pourquoi l'index te parait mauvais ?
 
edit : il me semble que y a une techinque pour indexer un champ textuel sur ses n premiers caractères, pas besoin de réinventer la roue


Message édité par Taz le 07-10-2003 à 20:51:02
mood
Publicité
Posté le 07-10-2003 à 20:50:09  profilanswer
 

n°533576
Taz
bisounours-codeur
Posté le 07-10-2003 à 20:52:09  profilanswer
 
n°533579
porksoda
Posté le 07-10-2003 à 20:58:07  profilanswer
 

bon, pour pas faire de jaloux...
 
Hey, merci Taz, ca semble bien ton truc.
 
:P

n°533586
mrbebert
Posté le 07-10-2003 à 21:20:00  profilanswer
 

En s'y mettant à plusieurs, on va bien réussir à faire quelque chose de pas trop mal :D

n°533600
porksoda
Posté le 07-10-2003 à 21:39:04  profilanswer
 

:)
 
J'essaie de faire un projet du style débilitron.com mais un peu plus sémantique. Mon dico devrait contenir des synonymes, antonymes, intensité des adjectif, etc. D'ici le temps qu'il soit monté, j'aurai plus de cheveux (je me l'ai aurai probablement tous arraché!) :lol:
 
Je sais, c'est pas très innovateur, mais ca me tente trop.
 


Message édité par porksoda le 07-10-2003 à 21:43:03
n°534032
Hermes le ​Messager
Breton Quiétiste
Posté le 08-10-2003 à 01:08:43  profilanswer
 

porksoda a écrit :

Oh!
 
De toutes façons Taz, la BD pèse déja 5MO alors que l'index soit gros ou pas...
 
 


 
C'est rien 5 Mo. Tu as du faire du travail de cochon oui... Le forum ici fait plusieurs giga, alors je ne pense pas que tes misérables 5 mo provoquent un timeout, à moins que tu aies un atari st en guise de serveur...  :D


Message édité par Hermes le Messager le 08-10-2003 à 12:31:55
n°534231
omega2
Posté le 08-10-2003 à 11:53:21  profilanswer
 

Ben c'est sur que sans index sur les colones du choix de recherche, ca donera jamais un système rapide. ;)

n°534383
porksoda
Posté le 08-10-2003 à 14:37:33  profilanswer
 

j'ai bien noté, merci les amis :P


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Optimisation MySQL?

 

Sujets relatifs
[mysql]optimisation d'un requeteOptimisation mysql
[ MySQL ] optimisation, parlons-en ( newbee inside )Probleme d'optimisation [php/mysql]
[MySQL] optimisation[MySQL] optimisation (2 requêtes en une...) [4.0.12 final sortie]
[MySQL]optimisation requete[Mysql] optimisation de requette : regle sur les index ?!
[PHP] - [MySQL] - Optimisation de SELECT COUNT(*)MySql - Optimisation - Champ indexé AND Champ pas indexé
Plus de sujets relatifs à : Optimisation MySQL?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR