Bonjour,
J'utilise mysql 5.0.27.
J'ai un gros soucis avec une base de données mysql (interfacé en MS Access en ODBC). J'utilise la requête ci-dessous comme moteur de recherche:
Ca fonctionne mais ca met une bonne trentaine de secondes à s'exécuter...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SELECT DISTINCTROW documents.* FROM (((((((((((((((( documents LEFT JOIN audiovisuel ON documents.id = audiovisuel.xid_document) LEFT JOIN editeurs ON documents.xid_editeur = editeurs.id) LEFT JOIN collections ON documents.xid_collection = collections.id) LEFT JOIN pays ON documents.xid_pays = pays.id) LEFT JOIN lieuxedition ON documents.xid_lieuedition = lieuxedition.id) LEFT JOIN categoriemateriel ON documents.xid_categorie = categoriemateriel.id) LEFT JOIN typedocument ON documents.xid_type = typedocument.id) LEFT JOIN producteurs ON audiovisuel.xid_producteur = producteurs.id) LEFT JOIN doc_revue ON documents.id = doc_revue.xid_doc) LEFT JOIN revues ON doc_revue.xid_revue = revues.id) LEFT JOIN doc_public ON documents.id = doc_public.xid_doc) LEFT JOIN publics ON doc_public.xid_public = publics.id) LEFT JOIN doc_mc ON documents.id = doc_mc.xid_doc) LEFT JOIN motscles ON doc_mc.xid_mc = motscles.id) LEFT JOIN motscles AS motscles_3 ON doc_mc.xid_mc = motscles_3.id) LEFT JOIN motscles AS motscles_2 ON doc_mc.xid_mc = motscles_2.id) LEFT JOIN motscles AS motscles_1 ON doc_mc.xid_mc = motscles_1.id;
J'ai un peu plus de 22 000 documents, 166 000 enregistrements dans doc_mc.
J'ai 19 tables différentes, 28,1Mo d'espace disque pour l'ensemble de la base de données. Comment pourrais-je optimiser cette requête? Je l'utilise en mode création sous Access pour permettre aux utilisateurs d'encoder leurs critères de recherche.
J'ai joint en fichier attaché la structure de mes tables.
Partager