Optimisation mysql et LIMIT
8 messages
• Page 1 sur 1
-

xTrade - WRInaute passionné

- Messages: 2289
- Inscription: 11 Déc 2006
Optimisation mysql et LIMIT
A l'origine, je veux sélectionner les lignes pour id=1051 à 1251 en ordonnant selon mon champ time
J'ai donc essayer ça : SELECT * FROM stx_visites ORDER BY time desc LIMIT 1051,200
Problème : ça marche pas, cela me retourne n'importe quoi.
En revanche, ceci : SELECT * FROM stx_visites WHERE '1051'<=id AND id<='1251' ORDER BY time desc LIMIT 200
fonctionne parfaitement.
Quel est le plus rapide (id est une clé primaire autoincrémentée) ?
Il y a un truc que j'ai raté dans le limit?
Merci!
J'ai donc essayer ça : SELECT * FROM stx_visites ORDER BY time desc LIMIT 1051,200
Problème : ça marche pas, cela me retourne n'importe quoi.
En revanche, ceci : SELECT * FROM stx_visites WHERE '1051'<=id AND id<='1251' ORDER BY time desc LIMIT 200
fonctionne parfaitement.
Quel est le plus rapide (id est une clé primaire autoincrémentée) ?
Il y a un truc que j'ai raté dans le limit?
Merci!
-

david96 - WRInaute passionné

- Messages: 1430
- Inscription: 28 Aoû 2005
- Code: Tout sélectionner
SELECT * FROM stx_visites WHERE id BETWEEN '1051' AND '1251'
ORDER BY time DESC
Pour un segment donnée dans ta base, mieux vaux utiliser BETWEEN, question rendement c'est mieux optimisé que LIMIT.
Voili, voilou !
Dernière édition par david96 le Ven Mar 02, 2007 23:01, édité 1 fois.
- Tilt
- WRInaute impliqué

- Messages: 858
- Inscription: 26 Mar 2005
Re: Optimisation mysql et LIMIT
xTrade a écrit:A l'origine, je veux sélectionner les lignes pour id=1051 à 1251 en ordonnant selon mon champ time
J'ai donc essayer ça : SELECT * FROM stx_visites ORDER BY time desc LIMIT 1051,200
Problème : ça marche pas, cela me retourne n'importe quoi.
En revanche, ceci : SELECT * FROM stx_visites WHERE '1051'<=id AND id<='1251' ORDER BY time desc LIMIT 200
fonctionne parfaitement.
Quel est le plus rapide (id est une clé primaire autoincrémentée) ?
Il y a un truc que j'ai raté dans le limit?
Merci!
Ta 1ère requête ne fonctionne pas car toute ta table est ordonnée selon ton champ time, et le limit s'applique non pas au champ id mais aux résultats 1051 à 1251 déjà réordonnés selon "time".
-

xTrade - WRInaute passionné

- Messages: 2289
- Inscription: 11 Déc 2006
Re: Optimisation mysql et LIMIT
Tilt a écrit:Ta 1ère requête ne fonctionne pas car toute ta table est ordonnée selon ton champ time, et le limit s'applique non pas au champ id mais aux résultats 1051 à 1251 déjà réordonnés selon "time".
Ah, ok, j'aurais pu chercher longtemps!
Quand au BETWEEN, damned, mon bouquin n'en parle même pas
Merci!
-

david96 - WRInaute passionné

- Messages: 1430
- Inscription: 28 Aoû 2005
Re: Optimisation mysql et LIMIT
xTrade a écrit:
Quand au BETWEEN, damned, mon bouquin n'en parle même pas
Merci!
Hé bé, c'est une grave omission dit dont !
Sans déc, la requête que je t'ai faite s'adapte carrément à ta demande, les LIMIT c'est bien, mais pas super optimisé pour ce genre de requête
-

xTrade - WRInaute passionné

- Messages: 2289
- Inscription: 11 Déc 2006
Re: Optimisation mysql et LIMIT
david96 a écrit:Sans déc, la requête que je t'ai faite s'adapte carrément à ta demande, les LIMIT c'est bien, mais pas super optimisé pour ce genre de requête
Oui, je viens de l'intégrer à cet endroit et à d'autres!
Cela marche pour tous les types je suppose?
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Google rachète Widevine (optimisation vidéo et DRM) - 13-12-2010
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Optimiser le nombre de mots dans les textes de liens - 03-10-2005
- Ranking Metrics lance son blog - 15-01-2007
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
