web-dev-qa-db-fra.com

Qu'est-ce qui est plus grand qu'un longblob?

le longblob est le plus gros type de données de MySQL. Si je veux enregistrer quelque chose de plus grand que 4 Go (LongBlob) Comment puis-je faire?.

Je parle de MySQL V-5. +

3
jcho360

L'utilisation de LongBlob peut être très risquée à la lumière du fait que le plus grand max_allowed_packet n'est que de 1 Go.

(( en août 2006, quelqu'un a posé une question similaire. dans lequel Peter Zaitsev a déclaré:

http://dev.mysql.com/doc/refman/5.0/fr/storage-requirs.html

Comme vous pouvez le constater en théorie, il s'agit d'environ 4 Go.

Il est cependant aussi limité par max_packet_size, qui est de 16 m par défaut.

Je ferais très attention à utiliser des blobs supérieurs à 100 Mo. MySQL aura besoin de quelque 3 fois de cette taille de mémoire allouée sur le serveur pour le traitement de BLOB.

Je ne suis pas un dba PostgreSQL, mais je devrais vous aventurer la suggestion suivante:

  • Si vous devez stocker des objets qui grandes, vous devriez aller avec PostgreSQL car il dispose d'une infrastructure de stockage appelée la technique de stockage d'attributs extérieure (TOAST). Cela permet aux lignes de ne pas être trop gros pour le traitement SQL.
  • Si vous devez utiliser MySQL, vous êtes bien mieux de stocker des liens de fichier URL que le blob lui-même.
6
RolandoMySQLDBA

Si vous voulez vraiment stocker dans MySQL, vous pourriez peut-être le stocker à l'aide de morceaux, ce qui signifie que vous faites un algorithme qui prend vos données et la stocker dans la base de données dans les morceaux - cela rend la programmation un peu plus difficile lors de la récupération des données , puisque vous devez faire le contraire, mais ce type de technique pourrait résoudre votre problème

1
serup