2009-02-21 11 views
5

Sto facendo un piccolo forum per il mio sito web clan. Mi chiedo se dovrei memorizzare il testo del thread in TEXT o BLOB? Qual è la differenza? Ho visto che phpBB lo fa.Memorizza il testo in BLOB?

Che cos'è BLOB? non posso trovare molto su di esso su Google.

risposta

1

BLOB è per dati binari. Non conosco il motivo per cui phpBB 3 memorizza tutto in binario ma l'ho notato io stesso. La mia ipotesi è che stiano comprimendo/codificando tutto ciò che mettono nel database. Puoi provare a guardare attraverso il codice sorgente phpBB per vedere se ci sono commenti che lo spiegano.

+1

Oh, questo potrebbe essere il motivo per cui la sua funzione di ricerca è così negativa. – Gumbo

6

Un blob è solo un mucchio di byte. Un numero arbitrario di byte, niente di più.

Se si dovesse memorizzare il testo come un blob, ci si dovrebbe preoccupare della codifica (il processo di traduzione del testo in byte). Ma se memorizzi le cose come testo, qualunque sia il database che trasporti, si assicurerà che il testo memorizzato nel database sia correttamente codificato e decodificato sia per l'archiviazione efficiente che per l'uso facile.

Se si prevede di memorizzare il testo, è necessario memorizzare il testo.

phpBB potrebbe implementare la codifica e la decodifica del testo e questo potrebbe essere uno dei motivi per utilizzare il BLOB anziché il testo. È improbabile, ma a volte i tipi di dati di testo hanno una lunghezza massima, il blob potrebbe essere un ostacolo per phpBB in questa particolare istanza.

4

Per "cosa" - BLOB è un oggetto binario di grandi dimensioni; confronta con CLOB: Oggetto Large di carattere. Diversi database li chiamano cose diverse, ad esempio, su SQL Server si ha image/varbinary(max) per BLOB e text/varchar(max) per CLOB.

Se un sistema supporta solo un BLOB, una opzione è quella di codificare le stringhe, ad esempio utilizzando UTF8. Questo potrebbe essere ciò che sta accadendo.