Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3091 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Utiliser plusieurs tables plutot qu'une ou inverse ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser plusieurs tables plutot qu'une ou inverse ?

n°1556641
AlphaZone
Posté le 07-05-2007 à 18:00:13  profilanswer
 

Bonjour,
 
J'ai une base de données déjà existante qui contient 2 tables qui ont exactement le même nombre de champs, les mêmes types et noms de champs, seul le nom des tables diffère (nom_table_2006, nom_table_2007).
 
La première table contient 24000 enregistrements, la seconde aucun mais je laisse imaginer qu'elle se remplira à l'avenir.
 
Je souhaiterais savoir s'il n'est pas plus judicieux de n'avoir qu'une seule et unique table, ou s'il est préférable de séparer par année afin de réduire l'importance des données.
Mon petit doigt me dit de ne garder qu'une seule table mais votre avis sera un plus dans ma vision des choses.
 
Je vous remercie.

mood
Publicité
Posté le 07-05-2007 à 18:00:13  profilanswer
 

n°1556643
did-54
Posté le 07-05-2007 à 18:03:54  profilanswer
 

ben ca dépend des requêtes que tu fais dessus aussi.
Si tu n'utilise courament que la table de l'année en cours, je dirais de garder une table, et tous les ans d'archiver cette table dans une grosse table d'historique.

n°1556715
casimimir
Posté le 07-05-2007 à 21:40:41  profilanswer
 

pour 24000 records je ne m'embeterai pas a cela, c'est rien du tout, si c'etait necessaire je regarderais plutot du cote du partitionning, mais il faudrait que tu precises le sgbd que tu utilises

n°1556798
AlphaZone
Posté le 08-05-2007 à 11:05:57  profilanswer
 

Oups! Mille excuses. J'utilise MySQL. Je comptais utiliser PostgreSQL mais Open Office Base connait pas ^^
 
Donc, si j'ai bien compris, il faut que je garde qu'une seule table?
 
Partitionning? C'est-à-dire? Décomposer la table?

n°1557354
MagicBuzz
Posté le 09-05-2007 à 14:11:40  profilanswer
 

Le partitionning, c'est un peu comme un index organisé en cluster, sauf qu'en plus de trier physiquement les données selon un critère, il permet de les stocker physiquement à différents endroits, toujours selon ce critère.
 
Ainsi, les données sont effectivement séparées, et tu peux stocker les données de la table utilisées couramment sur un disque rapide mais de faible capacité, tandis que l'historique, volumineux mais peut utilisé, sera stocké sur un disque lent mais volumineux.
 
L'intérêt d'une partition (en terme SGBD) c'est qu'il permet de n'avoir qu'une seule table, mais bénéficier des avantages d'un découpage en sous-tables d'un point de vue performances.

n°1557425
AlphaZone
Posté le 09-05-2007 à 15:48:48  profilanswer
 

Merci pour l'explication. Si t'as de la documentation, je suis preneur. Mais, je vais quand même chercher de mon côté ;)

 

Merci encore.

 

EDIT : Pour ceux que ça intéresse, j'ai trouvé cette documentation bien détaillée: http://krierjon.developpez.com/mysql/partitionnement/


Message édité par AlphaZone le 09-05-2007 à 15:52:56
n°1557449
AlphaZone
Posté le 09-05-2007 à 16:21:31  profilanswer
 

J'ai un nouveau problème.

 

J'ai repris la table dans la documentation que j'ai trouvé et lorsque que je l'exécute, j'obtiens cette erreur :

Code :
  1. requête SQL:
  2. CREATE TABLE transac_part(
  3. id INT UNSIGNED NOT NULL ,
  4. montant INT UNSIGNED NOT NULL ,
  5. jour DATE NOT NULL ,
  6. codePays ENUM( 'FR', 'BE', 'UK', 'US', 'CA', 'JP' ) NOT NULL
  7. )PARTITION BY RANGE(
  8. YEAR( jour )
  9. )(
  10. PARTITION p1 VALUES LESS THAN( 1997 ) , PARTITION p2
  11. VALUES LESS THAN( 1998 ) , PARTITION p3
  12. VALUES LESS THAN( 1999 ) , PARTITION p4
  13. VALUES LESS THAN( 2000 ) , PARTITION p5
  14. VALUES LESS THAN( 2001 ) , PARTITION p6
  15. VALUES LESS THAN( 2002 ) , PARTITION p7
  16. VALUES LESS THAN( 2003 ) , PARTITION p8
  17. VALUES LESS THAN( 2004 ) , PARTITION p9
  18. VALUES LESS THAN( 2005 ) , PARTITION p10
  19. VALUES LESS THAN( 2006 ) , PARTITION p11
  20. VALUES LESS THAN MAXVALUE
  21. )
  22. MySQL a répondu:Documentation
  23. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PARTITION BY RANGE(YEAR(jour))
  24. (
  25.    PARTITION p1 VALUES LESS THAN(1997),
  26.    P' at line 7
 

J'ai repris un exemple de la documentation officiel. Et rien à faire, c'est toujours la même erreur.

 

Quel est mon problème ? J'utilise MySQL 5.0.27-nt

  

EDIT : Arf! je me suis trompé. Le partitionnement n'est disponible qu'avec la future version 5.1. Va falloir prendre son mal en patience...


Message édité par AlphaZone le 09-05-2007 à 16:24:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Utiliser plusieurs tables plutot qu'une ou inverse ?

 

Sujets relatifs
Aidez moi à tester mon prog pleeease (serveur web, sockets)Problème d'interrogation de deux tables d'une bdd bibliographie
[oracle] vue sur plusieurs tables a la structure identiqueUtiliser mysql_query() avec 2 requêtes ?
[PHP/HTML] Forcer l'affichage progressif de grandes tables sous IE?[C] utiliser un nombre stocké dans un fichier
[non résolu] mysql- rechercher dans plusieurs tablesimporter des tables mysql dans Access?????
Plus de sujets relatifs à : Utiliser plusieurs tables plutot qu'une ou inverse ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR