penso che la documentazione è ragionevolmente chiaro sulle differenze tra bytea e testo:
stringhe binarie si distinguono dalle stringhe di caratteri in due modi. Innanzitutto, le stringhe binarie consentono specificamente di memorizzare ottetti di valore zero e altri ottetti "non stampabili" (in genere, ottetti al di fuori dell'intervallo da 32 a 126). Le stringhe di caratteri non consentono gli ottetti nulli e inoltre non consentono altri valori di ottetto e sequenze di valori di ottetto non validi in base alla codifica del set di caratteri selezionata del database. In secondo luogo, le operazioni su stringhe binarie elaborano i byte effettivi, mentre l'elaborazione delle stringhe di caratteri dipende dalle impostazioni locali. In breve, le stringhe binarie sono appropriate per l'archiviazione di dati che il programmatore considera come "byte grezzi", mentre le stringhe di caratteri sono appropriate per l'archiviazione del testo.
http://www.postgresql.org/docs/9.0/static/datatype-binary.html
... Ha a che fare con se i contenuti sono "testo" (fatte salve le impostazioni locali e Internationalizations che hai applicato alla configurazione del server e il sistema operativo su cui si sta eseguendolo) rispetto alle matrici di "ottetti" (sequenze di valori binari a 8 bit, comunemente denominati "byte").
(Ci sono alcune distinzioni tecniche tra il termine "byte" e il termine "ottetto" - perché, storicamente, alcune piattaforme e dispositivi informatici utilizzavano "byte" con parità e/o fermano bit mentre il termine "ottetti" sempre significa esattamente 8-bit, un termine che è stato introdotto per chiarire le specifiche e la documentazione per i protocolli di rete).
fonte
2015-12-28 02:23:33