Я делаю небольшой форум для своего кланового сайта. Мне интересно, должен ли я хранить текст потока в TEXT или BLOB? Какая разница? Я видел, что phpBB делает это.
Что такое BLOB? не могу найти много об этом в Google.
Блаб – всего лишь куча байтов. Произвольное количество байтов, ничего больше.
Если вы хотите хранить текст в виде блоба, вам придется беспокоиться о кодировании (процесс перевода текста в байты). Но если вы храните вещи в виде текста, независимо от того, какую транспортную базу вы используете, убедитесь, что текст, хранящийся в базе данных, правильно закодирован и декодирован как для эффективного хранения, так и для простого использования.
Если вы планируете хранить текст, вы должны хранить текст.
phpBB может реализовать кодирование и декодирование текста, и это может быть одной из причин использования blob вместо текста. Маловероятно, но иногда текстовые типы данных имеют максимальную длину, blob может работать для phpBB в данном конкретном случае.
Re «что» – BLOB является двоичным большим OBject; сравните с CLOB : Character Large OBject. Различные базы данных называют их разными, хотя, например, на SQL Server у вас есть image
/ varbinary(max)
для BLOB, а text
/ varchar(max)
для CLOB.
Если система поддерживает только BLOB, то одним из вариантов является кодирование строк – например, с использованием UTF8. Это может быть то, что происходит.
BLOB предназначен для двоичных данных. Я не знаю, почему phpBB 3 хранит все в двоичном формате, но я сам это заметил. Я предполагаю, что они сжимают / кодируют все, что они помещают в базу данных. Вы можете попробовать просмотреть исходный код phpBB, чтобы узнать, есть ли какие-либо комментарии, объясняющие его.