Miglior approccio per un database di stringhe lunghe

8

Ho bisogno di memorizzare domande e risposte in un database. Le domande saranno da una a due frasi, ma le risposte saranno lunghe, almeno un paragrafo, probabilmente di più.

L'unico modo che conosco per farlo al momento è un database SQL. Tuttavia, non credo che questa sia una buona soluzione perché, per quanto ho visto, questi database non vengono utilizzati per dati di questo tipo o dimensione. È questo il modo corretto di andare o c'è un modo migliore per archiviare questi dati? C'è un modo migliore di memorizzare stringhe raw?

    
posta gsingh2011 23.03.2012 - 02:05
fonte

4 risposte

14

Mongodb è ottimo, ma conosci SQL. Non c'è niente di sbagliato con la memorizzazione di risposte lunghe nei campi. È possibile memorizzare immagini o anche file in SQL. Penso che la dimensione massima del campo sia 2GB.

Sono quasi sicuro che questa risposta venga salvata da qualche parte nel campo della tabella.

Per quanto ce ne siano migliaia, nessun problema. Anche milioni non dovrebbero essere un problema. Potresti considerare l'utilizzo dell'indicizzazione di testo completo se cerchi nel campo parole chiave o qualcosa del genere. Ma, cerco di non ottimizzare fino a quando vedo un problema. I computer sono economici, l'archiviazione è fondamentalmente gratuita.

    
risposta data 23.03.2012 - 04:13
fonte
5

Non ci sono problemi nella memorizzazione di testo lungo nei database (SQL o altro). Ecco come praticamente ogni voce di blog (pensa Wordpress), articolo di notizie e post sul forum (pensa phpbb) su Internet è memorizzato. Non conosco le specifiche del setup dello stack exchange, ma sono sicuro che anche la tua domanda è archiviata in un database. La maggior parte dei database SQL ha un tipo di campo TEXT o l'equivalente solo allo scopo di memorizzare dati testuali di qualsiasi lunghezza. Molti hanno anche sistemi di ricerca full text sul posto.

Prendi decisioni tecniche basate su conoscenze tecniche e comprensione, non sentimenti.

    
risposta data 23.03.2012 - 04:57
fonte
4

Sì, è il modo corretto di andare. Memorizzare le stringhe in un database SQL è ciò che si vuole fare. Una delle mie tabelle nel DB ha più di un gig di dati in chiaro e funziona bene.

Se sei preoccupato per lo spazio di archiviazione, ricorda che è economico!

Se sei preoccupato per le prestazioni, non preoccuparti, un buon database può scalare (o perdere) tutti i dati che vuoi inserire.

L'ultima cosa che vuoi fare è avviare l'ottimizzazione ora per il gusto di farlo (comprimendo le stringhe prima di metterle nel DB o qualcosa di simile) prima che diventi effettivamente un problema. Ti stai solo dando più lavoro.

    
risposta data 23.03.2012 - 06:24
fonte
2

Non ci sono problemi nella memorizzazione di stringhe grandi o dati binari. Ho lavorato con un database con più di un terabyte di dati binari e ho funzionato molto bene (postgres) e l'unica cosa negativa era il tempo di backup.

La grande domanda è: "Avrai bisogno di fare ricerche costanti in questo testo?"

Se stai cercando le stringhe nel testo, puoi pensare in una soluzione di indice:

  • Nel database ci sono alcuni che dipendono dal venditore, come Postgres Testo completo: link
  • Nel lato delle applicazioni ci sono molte buone opzioni come Lucene (Java): link
risposta data 26.02.2015 - 14:02
fonte

Leggi altre domande sui tag