par
Akouali » 23 juil. 2009, 00:06
Salut les gens,
À la recherche de meilleurs performances au niveau des requêtes SQL, pensez-vous qu'il soit utile de séparer en plusieurs tables des informations pouvant êtres contenues dans une seule ?
Pour imager mon questionnement voici un petit exemple :
Imaginons un simple système de posts (par exemple pour un forum très basique), dont voici les informations que l'on cherche à stocker concernant chaque post :
- - id (INT)
- user (INT)
- status (INT)
- title (VARCHAR)
- comment (TEXT)
Alors que les quatre premiers champs sont relativement petits, le dernier peut potentiellement stocker beaucoup d'information (vraiment beaucoup !). C'est alors que se pose la question de savoir si la séparation en deux tables peut apporter une hausse de performance :
TABLE 1
- - id (INT)
- user (INT)
- status (INT)
- title (VARCHAR)
TABLE 2
- - id (INT)
- belongTo (INT)
- message (TEXT)
L'avantage se retrouverait lors du
listage des posts, la requête serait moins lourde, et l'on appellerait la deuxième table uniquement lorsque l'ont rentre dans une discussion où le contenu des messages apparait.
Au delà de l'aspect SQL, un soulagement du coté de PHP sur les pages de listage (où seul le titre des posts apparait) pourrait éventuellement se faire ressentir. Mais alors, est-ce des ralentissements pourraient se faire ressentir à cause des deux tables lors des accès aux discussion où le contenu des messages apparait ?
Merci de partager vos connaissance
