choix des types de champ mysql - PHP - Programmation
Marsh Posté le 10-09-2009 à 10:50:14
c'est d'une débilité sans nom
dès que tu veux travailler sur les fonctions spécifiques au format (traimtent de date, opération mathématique) , tu te retrouves a faire des cast dans tous les sens
Marsh Posté le 10-09-2009 à 13:12:27
c'est clair. En plus, VARCHAR est limité à 255 il me semble. Pour aller au-dessus, c'est des TINYTEXT, MEDIUMTEXT...
Des trucs qui peuvent augmenter les perfs :
- choisir de bons index
- écrire de bonnes requêtes (genre, éviter les IN sur des gros ensembles de données)
- autant que possible, avoir des tailles de lignes fixes, c'est-à-dire des champs à taille fixe (CHAR, INT, ENUM...) donc pas de VARCHAR ou de blob par ex. Après, faut trouver un bon compromis entre espace disque et perfs.
Marsh Posté le 10-09-2009 à 15:36:46
hercule29 a écrit : mais on m'a dit (pour ne pas dire forcé), pour aller plus vite, de tout mettre en varchar (1000) |
C'est qui le dangereux malade qui t'as dit ça ?
Marsh Posté le 10-09-2009 à 17:16:34
la même personne qui m'a dit que personne ne mettait les dates de type date, pas même les ssii...mon chef :-)
Marsh Posté le 10-09-2009 à 18:48:06
hercule29 a écrit : la même personne qui m'a dit que personne ne mettait les dates de type date, pas même les ssii...mon chef :-) |
on parle de fichier excel ou de bdd ?
Marsh Posté le 11-09-2009 à 10:11:11
pas utiliser le type date ou timestamp Ben pour les calculs de dates, vous devez pas vous faire chier alors!
Marsh Posté le 11-09-2009 à 10:31:15
et se chopper une erreur parce que on a essayé de caster "la tête a toto" en date.
change de boîte.
Marsh Posté le 10-09-2009 à 10:44:14
Bonjour,
J'ai une question concernant les types de champ (int, varchar, date etc) a choisir dans mysql : jusque là j'optais toujours pour le + logique (date en format date, entier en int...) mais on m'a dit (pour ne pas dire forcé), pour aller plus vite, de tout mettre en varchar (1000). Est ce que cela implique des risques (notamment niveau performances) ?
Merci d'avance