2009-02-21 14 views
5

Robię małe forum dla mojej strony klanów. Zastanawiam się, czy powinienem przechowywać tekst wątku w TEXT lub BLOB? Co za różnica? Widziałem, że phpBB to robi.Przechowuj tekst w BLOB?

Co to jest BLOB? Nie mogę znaleźć wiele na ten temat w Google.

Odpowiedz

1

BLOB jest dla danych binarnych. Nie wiem, dlaczego phpBB 3 przechowuje wszystko w systemie binarnym, ale sam to zauważyłem. Domyślam się, że kompresują/kodują wszystko, co umieścili w bazie danych. Możesz spróbować przejrzeć kod źródłowy phpBB, aby zobaczyć, czy są jakieś komentarze wyjaśniające to.

+1

To może być powód, dla którego funkcja wyszukiwania jest tak zła. – Gumbo

6

Kropelka to po prostu garść bajtów. Dowolna liczba bajtów, nic więcej.

Jeśli miałbyś przechowywać tekst jako blob, musiałbyś się martwić o kodowanie (proces tłumaczenia tekstu na bajty). Ale jeśli przechowujesz rzeczy jako tekst, niezależnie od transportu bazy danych, twoje użycie sprawi, że tekst przechowywany w bazie danych zostanie odpowiednio zakodowany i zdekodowany, co zapewni zarówno efektywne przechowywanie, jak i łatwą obsługę.

Jeśli zamierzasz przechowywać tekst, powinieneś przechowywać tekst.

phpBB może zaimplementować kodowanie i dekodowanie tekstu samodzielnie i może to być jeden z powodów używania blob zamiast tekstu. Jest to mało prawdopodobne, ale czasami typy danych tekstowych mają maksymalną długość, blob może być pracą dla phpBB w tym konkretnym przypadku.

4

Re "co" - BLOB to duży obiekt binarny; porównaj z CLOB: Postać dużego obiektu. Różne bazy danych nazywają je różnymi rzeczami - na przykład na serwerze SQL masz image/varbinary(max) dla BLOB i text/varchar(max) dla CLOB.

Jeśli system obsługuje tylko obiekt BLOB, to jedną z opcji jest kodowanie ciągów znaków - na przykład przy użyciu UTF8. To może być to, co się dzieje.