Séparer une table MySQL


sim100
WRInaute passionné
WRInaute passionné
 
Messages: 1431
Inscription: 2 Fév 2003

Séparer une table MySQL

Message le Sam Juil 07, 2007 7:21

Bonjour
Voila, je vais essayer d'expliquer mon problème:
J'ai un site avec une table de plusieurs milliers de lignes, chiffre qui augmente en pernanence évidement.

Dans cette table, j'ai des noms d'endroit du monde classé par continent, pays, villes et lieux.

Donc sur mon site quand quelqu'un ouvre une page sur la tour eifel par example il y a une recheche qui se fait sur toute la table, tous les continents, tous les pays etc...

Donc y a t-il moyen de faire en sorte que comme la toue eifel est dans Paris, de faire un recherche QUE dans le pays france par exemple, que la recherche se passe que dans les lignes appartenant à la catégorie france, ou europe.

De façon à soulager le nombre de requêtes.

Merci, si il y a une doc qqpart

Leguerinos
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 26 Juil 2006

Message le Sam Juil 07, 2007 9:28

Pourquoi ne fais-tu pas , en fonction de tes champs, une requête du type :

SELECT * FROM ma_table WHERE $_POST['Pays'] = 'France'

Ou quelque chose de similaire en fonction de ton type de données (POST, GET, ...)


sim100
WRInaute passionné
WRInaute passionné
 
Messages: 1431
Inscription: 2 Fév 2003

oui

Message le Sam Juil 07, 2007 10:24

Oui ça c'est fait.
Mais le programme est quand meme obligé de chercher parmis plusieurs milliers de ligne.

Il m'a semblé entendu dire qu'il y avais un moyen de séparer ça, je en suis pas sur et je ne sais pas comment!

C'est à dire limiter la recherche parmis moins de lignes...

Merci

Leguerinos
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 26 Juil 2006

Message le Sam Juil 07, 2007 10:28

Je crois que tu fais allusion aux index ...

Effectivement, ils permettent sur des grosses bases de diminuer le temps de recherche.

Utilise la commande CREATE INDEX.

petit-ourson
WRInaute impliqué
WRInaute impliqué
 
Messages: 855
Inscription: 31 Mai 2004

Message le Sam Juil 07, 2007 12:24

Normalement tu as des index sur tes champs continents, pays et villes. Normalement le type de ces champs sont des entiers. Donc en partant de là tu as déjà optimisé l'essentiel de ton modèle de données.

Normalement avec des requêtes simples, cela devrait être rapide même avec quelques milliers de villes.

Un sgbd est fait pour recherches dans des milliers de lignes, pas uniquement dans 10 lignes.


sim100
WRInaute passionné
WRInaute passionné
 
Messages: 1431
Inscription: 2 Fév 2003

ok

Message le Sam Juil 07, 2007 12:38

OK, merci, en fait je pense que je suis bien optimisé.

J'ai un VPS au USA et régulièrement ma base était HS et je devais redémarrer le service :(

J'ai contacté le service client et en fait le max authorisé était 100 personnes en même temps sur la base, ils m'ont augmenté à 150, ça va pour l'instant, je vais voir :)

Leguerinos
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 26 Juil 2006

Message le Sam Juil 07, 2007 13:50

Ok pas de problème.

Bonne journée.

jarreweb
WRInaute discret
WRInaute discret
 
Messages: 192
Inscription: 12 Sep 2003

Message le Lun Juil 09, 2007 16:06

comme on l'a dit, il faut bien vérifier les index et les poser au bon endroit
j'ai, pour mon taf, une table avec plus d'un millions de lignes et ca tourne nickel


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités