Muszę przechowywać pytania i odpowiedzi w bazie danych. Pytania będą składały się z jednego do dwóch zdań, ale odpowiedzi będą długie, przynajmniej akapit, prawdopodobnie więcej.
Jedynym sposobem, w jaki wiem, że mogę to teraz zrobić, jest baza danych SQL. Jednak nie wydaje mi się, aby było to dobre rozwiązanie, ponieważ o ile widziałem, te bazy danych nie są używane do danych tego typu lub wielkości. Czy to jest właściwa droga, czy jest lepszy sposób na przechowywanie tych danych? Czy istnieje lepszy sposób niż przechowywanie surowych strun?
database
database-design
gsingh2011
źródło
źródło
Odpowiedzi:
Mongodb jest świetny, ale znasz SQL. Nie ma nic złego w przechowywaniu długich odpowiedzi w polach. Możesz przechowywać obrazy, a nawet pliki w SQL. Myślę, że maksymalny rozmiar pola to 2 GB.
Jestem prawie pewien, że ta odpowiedź jest gdzieś przechowywana w polu tabeli.
Jeśli chodzi o tysiące, nie ma problemu. Nawet miliony nie powinny stanowić problemu. Możesz rozważyć zastosowanie indeksowania pełnotekstowego, jeśli szukasz w polu słów kluczowych lub czegoś takiego. Ale staram się nie optymalizować, dopóki nie zobaczę problemu. Komputery są tanie, pamięć jest w zasadzie darmowa.
źródło
Nie ma problemu z przechowywaniem długiego tekstu w bazach danych (SQL lub w inny sposób). Tak właśnie jest przechowywany praktycznie każdy wpis na blogu (zdaniem Wordpress), artykuł prasowy i post na forum (zdaniem phpbb) w Internecie. Nie znam szczegółowych szczegółów konfiguracji wymiany stosów, ale jestem pewien, że twoje pytanie jest również zapisane w bazie danych. Większość baz danych SQL ma
TEXT
typ pola lub odpowiednik tylko do przechowywania danych tekstowych o dowolnej długości. Wiele z nich ma również systemy wyszukiwania pełnotekstowego.Podejmuj decyzje techniczne w oparciu o wiedzę techniczną i zrozumienie, a nie uczucia.
źródło
Tak, to właściwa droga. Przechowywanie ciągów w bazie danych SQL jest tym, co chcesz zrobić. Jedna z moich tabel w DB ma ponad gigantyczny tekst jawny i działa dobrze.
Jeśli martwisz się o miejsce do przechowywania - pamiętaj, że jest tanie!
Jeśli martwisz się wydajnością - nie martw się, dobra baza danych może być skalowana (lub zmniejszana) do dowolnej ilości danych, które chcesz w niej umieścić.
Ostatnią rzeczą, którą chcesz zrobić, to rozpocząć optymalizację teraz ze względu na to (kompresowanie łańcuchów przed umieszczeniem ich w DB lub czymś szalonym), zanim faktycznie stanie się to problemem. Po prostu dajesz sobie więcej pracy.
źródło
Nie ma problemu z przechowywaniem dużych ciągów lub danych binarnych. Pracowałem z bazą danych zawierającą więcej niż jeden terabajt danych binarnych i działałem bardzo dobrze (postgres), a jedyną złą rzeczą był czas tworzenia kopii zapasowej.
Główne pytanie brzmi: „Czy będziesz potrzebować ciągłego wyszukiwania w tym tekście?”
Jeśli chcesz wyszukać ciągi w tekście, możesz pomyśleć w jednym rozwiązaniu indeksu:
źródło