SQL - Réduire temps requête
Callie33
Messages postés
139
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27138 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27138 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voici un échantillon de la table "eod" que j'utilise :
La table contient environ 1.5M de lignes.
J'effectue les trois requêtes suivantes :
Chacune d'elle prend environ 0,7 sec, et j'aimerais réduire sensiblement ce temps.
Comment optimiser mes requêtes ou la recherche ? Est-il possible de faire les 2 premières requêtes en une seule?
Merci pour votre aide,
Callie
Voici un échantillon de la table "eod" que j'utilise :
| eod_id | company_symbol | date | open | close | high | low | | 1 | AAA | 01-01-2000 | 40.00 | 42.00 | 43.00 | 39.00 |
La table contient environ 1.5M de lignes.
J'effectue les trois requêtes suivantes :
SELECT COUNT(*) FROM eod WHERE company_symbol="AAA" AND CLOSE>OPEN AND DATE BETWEEN "0000-00-00" AND "0000-00-00;
SELECT COUNT(*) FROM eod WHERE company_symbol="AAA" AND CLOSE<OPEN AND DATE BETWEEN "0000-00-00" AND "0000-00-00;
SELECT min(date), max(date) FROM eod WHERE company_symbol="AAA"
Chacune d'elle prend environ 0,7 sec, et j'aimerais réduire sensiblement ce temps.
Comment optimiser mes requêtes ou la recherche ? Est-il possible de faire les 2 premières requêtes en une seule?
Merci pour votre aide,
Callie
A voir également:
- SQL - Réduire temps requête
- Comment réduire la taille d'un fichier - Guide
- Reduire taille image - Guide
- Reduire clavier iphone - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Raccourci réduire fenetre - Guide
2 réponses
Salut,
- quel SGBD ?
- peux-tu faire un EXPLAIN de ta requête ?
- quels champs sont indexés ?
Pour les deux premières tu peux les faire en même temps en modifiant le test sur OPEN/CLOSE pour ne garder que les résultats non identiques.
- quel SGBD ?
- peux-tu faire un EXPLAIN de ta requête ?
- quels champs sont indexés ?
Pour les deux premières tu peux les faire en même temps en modifiant le test sur OPEN/CLOSE pour ne garder que les résultats non identiques.
Bonjour,
Merci pour ta réponse. Alors :
- J'utilise MySQL
- Explain pour la 1 :
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
SIMPLE | eod | ALL | eod_date_close | NULL | NULL | NULL | 1544440 | Using where
- Explain pour la 3 :
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
SIMPLE | eod | ALL | ALL | NULL | NULL | NULL | 1487357 | Using where
- Index : eod_date_close on eod(date, close)
Merci pour ta réponse. Alors :
- J'utilise MySQL
- Explain pour la 1 :
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
SIMPLE | eod | ALL | eod_date_close | NULL | NULL | NULL | 1544440 | Using where
- Explain pour la 3 :
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
SIMPLE | eod | ALL | ALL | NULL | NULL | NULL | 1487357 | Using where
- Index : eod_date_close on eod(date, close)