|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : février 2009 Messages : 389 ![]() |
Bonjour,
J'ai fais un site météo qui m'indique les différents relevés de la journée. Mon site est en php et va chercher les infos dans une base MySQL. Au début, il y avait peu d'enregistrements donc tout se passait bien. Mais depuis un moment, je suis à environ 60 000 enregistrements, et soit les pages mettent un temps énorme à charger, ou alors elle ne se chargent pas du tout. Le navigateur arrête avant. Je pense que soit la structure de ma/mes tables sont à améliorer, ou alors mes requêtes ne sont pas optimisés. Voici la structure de mes 2 tables principales : base météo : ![]() table capteurs : ![]() table releves : ![]() exemple de requete pour afficher la température actuelle : Code :
Code :
Code :
Je souhaiterai donc savoir ce que je peux améliorer pour que le chargement soit plus rapide. Je n'utilise pas les index dans mes tables, car je ne comprends pas trop le fonctionnement. J'ai 9 sondes différentes, donc 9 requêtes pour valeur actuelle, 9 requêtes pour min, 9 requêtes pour max, 9 requêtes pour batterie. Merci pour votre aide. |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Pourquoi faire des boucles alors qu'il n'y a qu'une seule ligne récupérée ?
Quels index sont mis sur la table releves ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|
00
|
|
|
#3 | |||
|
Membre du Club
![]() Inscription : février 2009 Messages : 389 ![]() |
Citation:
Merci pour ta réponse. Pour les requetes, j'enleve la boucle, ce qui me donne ceci : Code :
|
|||
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
A minima, n'as-tu pas déjà une PRIMARY KEY (clé primaire in french) dans la table ? La colonne id_capteur représentant une clé étrangère référençant l'identifiant du capteur, elle devrait aussi être indexée. Et type_mesure, puisque c'est un critère de recherche fréquent, devrait aussi être indexé. Pour plus d'info : Que faut-il indexer ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2009 Messages : 389 ![]() |
99 secondes, pour définir un index sur type_mesure
215 secondes, pour définir un index sur id_capteur. C'est normal ? |
|
|
00
|
|
|
#6 |
![]() ![]() |
Ça fait peut-être un peu beaucoup vu la faible taille de la table mais maintenant que la table est indexée, les requêtes vont plus vite ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise la suite Linux Mageïa ! |
|
00
|
Copyright © 2000-2013 - www.developpez.com