2013-05-20 4 views
0

J'ai un type de données varchar et deux types de données BLOB pour les recettes. Je n'ai pas besoin de relations entre les données. Par exemple, je n'ai pas besoin de savoir quels repas ont besoin de pomme de terre, etc.Données MySQL BLOB dans la même table ou non

Je récupèrerai les materails des repas de la base de données, les éditerai et les sauvegarderai à nouveau sous BLOB. Ensuite, je vais créer un fichier texte binaire (~ 100 Ko) à la volée et l'enregistrer dans une autre colonne nommée données binaires. Donc, ma question est, est-ce que diviser la table en deux est logique? Mettre un BLOB dans une table et un autre BLOB dans une autre table change la performance (théoriquement). Ou ne change-t-il rien, sauf les problèmes de sauvegarde?

+-id--+-meal name (varchar)----+-materials (BLOB)------------+-binary data (BLOB)---+ 
| 1 | meatball    | (meat, potato, bread etc.) | (some binary files) | 
| 2 | omelette    | (potato, egg, etc.)   | (other binary files) | 
+-----+------------------------+-----------------------------+----------------------+ 
+0

vous devez normaliser votre schéma db –

Répondre

0

Si vous utiliserez un ORM, mieux utiliser l'approche de table fractionnée. Sinon, lorsque vous demandez les matériaux, l'ORM récupérera généralement tous les champs disponibles ... Donc, lire des objets "binaires" grands et inutiles. De l'autre côté des choses ... Si vous allez servir les résultats binaires, une meilleure approche serait de sauvegarder les fichiers et de les servir directement.

0

C'est plus un choix de conception qu'une amélioration spécifique des performances. Cela suppose que votre requête n'effectue pas un "SELECT *" fourre-tout. Vos requêtes doivent toujours cibler les colonnes spécifiques qui vous intéressent dans un but donné.

Si vous ne prévoyez pas que les types de BLOB pour un repas spécifique dépassent vos attentes actuelles, alors le conserver dans un tableau est un choix approprié. Cela suppose qu'il existe une relation un-à-un entre eux.

Cependant, s'il y a un quelconque risque d'avoir besoin d'un plus grand nombre d'objets BLOB pour un repas, alors oui, je considérerais le découper en une nouvelle table et des références croisées. Parfois, il vaut mieux être prudent que désolé.

Questions connexes