Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2011, 13h48   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Par défaut [DEMANDE DE CONSEIL] Quelques notions que j'aimerai éclaircir

Bonjours,

Je ne suis pas vraiment novice avec mysql (je veux dire par la que je sais aisément faire des requêtes avec de multiple relation via pdo de php), mais en ayant appris par moi même j'ai néanmoins quelques problèmes de notion que j'aimerais éclaircir

Pour un développement d'une base de donnée qui va récupérer beaucoup d'informations (que je suis entreins de construire)
est ce préférable de mettre
  • tinyint au lieu de int (ou même int(1) ou lieu des 11 par défaut) si nom nombre ne sera que 0 ou 1
  • varchar 5 si je suis sur qu'il n y aura pas plus de 5 caractere

Cette question peut paraitre très conne, mais j'avais lu qu'a l'heure actuelle, grâce aux vitesses de connexion, ça ne servait plus a rien de s'attarder sur ceci.
Je vous demande donc votre opinion pour savoir si ça pourrait avoir un impacte sur des millions de données

J'aimerai aussi savoir à quoi sert de mettre foreinKey dans la syntaxe, vu qu'on peu faire une relation sans

Si vous connaissez de très bon ouvrage sur mysql (procédure, utilisation du cron..) n'hésitez pas a m'en faire part, car j'aimerai pousser mes connaissance dans ce domaines

Merci d'avance pour votre aide
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 18h14   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Déjà considérons que MySQL est le pire SGBDR que l'on puisse imaginer... Et encore, pour ma part je ne peut même pas dire que c'est un SGBDR, car il ne sait pas correctement gérer les relations.
A lire sur ce pseudo SGBDR que constitue MySQL :
http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/

Maintenant sur tes questions précises :
1) si votre nombre ne sera que 0 ou 1 ce serait plutôt un booléen qu'il faut utiliser En effet, MySQL ne sait toujours pas implémenter les contraintes de DOMAINE et don ne peut garantir que dans un entier qil n'y aura jamais que 0 ou 1 !
2) Un VARCHAR nécessite de stocker en sus des données la longueur des données stockées et ceci sur plusieurs octets. Ainsi en utilisant un VARCHAR(5) toujours constitué de chaines de caractères de 5 caractères de longueurs, vous stockées en fait 7 octets au lieu de 5. C'est donc stupide, car cela représente 40% de données stockées inutilement en pure pertes...

Citation:
Cette question peut paraitre très conne, mais j'avais lu qu'a l'heure actuelle, grâce aux vitesses de connexion, ça ne servait plus a rien de s'attarder sur ceci.
Oh que non et vous avez bien fait de poser cette question. Contrairement à une idée reçue, vous gagnerez peu de performances en jouant sur le matériel et énormément en jouant sur la structuration de votre base.
Avec un bon modèle de données et une bonne indexation des gains de plus du milliers sont courant, alors que c'est impossible avec du matériel, même si vous avez gagné au loto... Mais souvent cela ne se voit que trop tard !

Citation:
J'aimerai aussi savoir à quoi sert de mettre foreinKey dans la syntaxe, vu qu'on peu faire une relation sans
A garantir l'intégrité des données. Par exemple éviter qu'un client soit supprimé alors qu'il y a des factures ou des commandes a son nom.
De plus, certains SGBDR comme SQL Server peuvent optimiser vos requêtes si vous avez mis ces types de contraintes. Mais ce n'est pas le cas de MySQL qui en est resté à l'age de pierre en matière d'optimisation et de performances...
http://blog.developpez.com/sqlpro/p9...lles-en-sql-1/

Citation:
Si vous connaissez de très bon ouvrage sur mysql (procédure, utilisation du cron..) n'hésitez pas a m'en faire part, car j'aimerai pousser mes connaissance dans ce domaines
Apprendre MySQL est stupide, si vous ne connaissez pas les principaux fondement des bases de données relationnelles. En effet, MySQL est si loin d'être un SGBDR, que c'est comme si vous vouliez apprendre à conduire sur un quad...
Commencez par apprendre ce que sont les SGBDR et le langage SQL.
Mon site comme mon bouquin, peuvent vous y aider.
Commencez par :
http://sqlpro.developpez.com/cours/sqlaz/techniques/
http://sqlpro.developpez.com/SGBDR/ReglesCodd/
http://sqlpro.developpez.com/cours/sqlaz/fondements/
...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 21h59   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 56
Points : 13
Points : 13
Un grand merci pour ces explication.
J'avais justement vu ton livre qui a l'air fort intéressant, je vais donc aller l'acheter et voir les solutions qui y sont proposées.

Bonne soirée
healou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web