Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 19/06/2006, 14h47   #1
Membre du Club
 
Avatar de ultracoxy
 
Étudiant
Inscription : mai 2006
Messages : 116
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 116
Points : 50
Points : 50
Par défaut [Débutante] Stockage images et vidéos : MyISAM ou InnoDB

Bonjour à tous,

Actuellement, je réalise une application en Java J2ee en utilisant une BDD MySQL. Je connais MySQL en surface mais j'ai besoin de savoir deux ou trois choses que la "littérature" que j'ai trouvé sur le web ne m'a pas aidé à trancher :

Mon application demandera à stocker beaucoup d'éléments (images, courtes videos) et d'avoir de nombreux utilisateurs. Tout d'abord, dois-je plutôt me tourner vers un stockage de type MyIsam ou innoDb ?

D'après ce que j'ai lu, une solution InnoDb est la plus envisageable...

Merci de votre aide !

Sinon 2 ou 3 petites questions :

Dans la FAQ, à la question "Que mettre comme valeur lors d'un INSERT ou d'un UPDATE sur un champ autoincrémenté ?", on répond rien. Mais lorsque je fais une requête d'insert, je suis bien obligée de mettre quelquechose sous peine de déclencher un exception SQL --> Quoi mettre ?

Autre question de la FAQ : "Comment récupérer la dernière valeur d'un champ autoincrémenté ?", réponse : la fonction SQL LAST_INSERT_ID(). Comment s'en sert on ? En faisant une requête sql pour la récupérer ?
ultracoxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 14h57   #2
Membre du Club
 
Inscription : mars 2006
Messages : 83
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 83
Points : 65
Points : 65
Salut,
Un article bien sympathique décrivant innodb:
http://qwix.media-box.net/index.php/...sAvezDitInnoDb
Clair , net, précis.
Personnellement j'ai apprécié.
En espérant que cela t'aide.

Nico
nicolou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 15h05   #3
Membre du Club
 
Avatar de luggerhouse
 
Inscription : juin 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 62
Points : 67
Points : 67
Citation:
Envoyé par ultracoxy
Dans la FAQ, à la question "Que mettre comme valeur lors d'un INSERT ou d'un UPDATE sur un champ autoincrémenté ?", on répond rien. Mais lorsque je fais une requête d'insert, je suis bien obligée de mettre quelquechose sous peine de déclencher un exception SQL --> Quoi mettre ?
Code :
1
2
 
INSERT INTO mytable VALUES=('','test');
La premiere valeur étant le champs auto incrémenté
Citation:
Autre question de la FAQ : "Comment récupérer la dernière valeur d'un champ autoincrémenté ?", réponse : la fonction SQL LAST_INSERT_ID(). Comment s'en sert on ? En faisant une requête sql pour la récupérer ?
En php cette méthode retourne l'id de la denière insertion donc:
Code :
1
2
3
 
$myvar=SQL LAST_INSERT_ID();
echo $myvar; //le dernier id
Espérant avoir donné des pistes ;-)
__________________
----- Linux Rocks! -----

LuggerHouse
Montreal Quebec Canada
luggerhouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 15h06   #4
Membre du Club
 
Avatar de ultracoxy
 
Étudiant
Inscription : mai 2006
Messages : 116
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 116
Points : 50
Points : 50
Merci, très clair en effet !

Sinon, juste une toute pitite question venant s'ajouter à la liste précédente : comment puis je définir une valeur de départ d'un champ auto-incrémenté pour une table InnoDb ?
ultracoxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 15h08   #5
Membre du Club
 
Avatar de ultracoxy
 
Étudiant
Inscription : mai 2006
Messages : 116
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 116
Points : 50
Points : 50
Merci aussi d'avoir éclaircit la FAQ...

Par contre je n'utilise pas php mais java donc je ne pourrai pas utiliser tes lignes de code.

Mais ce n'est pas grave !
ultracoxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 15h18   #6
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Citation:
Envoyé par ultracoxy
Mon application demandera à stocker beaucoup d'éléments (images, courtes videos) et d'avoir de nombreux utilisateurs. Tout d'abord, dois-je plutôt me tourner vers un stockage de type MyIsam ou innoDb ?
Si ta base est amenée à être très sollicitée, il vaut mieux éviter de stocker des images et des vidéos dedans, ça va engendrer de gros problèmes de performance vu la taille de ces données. Autant stocker les fichiers sur disque et ne mettre que des liens vers les fichiers dans la base de données.

Combien d'utilisateurs sont susceptibles d'accéder simultanément à la base en moyenne ?

Citation:
Dans la FAQ, à la question "Que mettre comme valeur lors d'un INSERT ou d'un UPDATE sur un champ autoincrémenté ?", on répond rien. Mais lorsque je fais une requête d'insert, je suis bien obligée de mettre quelquechose sous peine de déclencher un exception SQL --> Quoi mettre ?
Quand on dit "rien" ça veut simplement dire qu'on omet la colonne auto-incrémentée dans le INSERT.
De plus la FAQ précise que "Si vous tenez à utiliser INSERT INTO table VALUES (...) sans préciser les noms de colonnes, insérez NULL ou 0".
Ca me parait suffisamment clair...

Citation:
Autre question de la FAQ : "Comment récupérer la dernière valeur d'un champ autoincrémenté ?", réponse : la fonction SQL LAST_INSERT_ID(). Comment s'en sert on ? En faisant une requête sql pour la récupérer ?
Comme toute autre fonction SQL, on s'en sert au sein d'une requête :

Code :
1
2
3
4
SELECT LAST_INSERT_ID();
SELECT * FROM latable WHERE id = LAST_INSERT_ID();
UPDATE autre_table SET xyz = LAST_INSET_ID()
...
__________________
Pensez au bouton
Maximilian 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 04h00.


 
 
 
 
Partenaires

Hébergement Web