Database alla ricerca di stringhe su tabelle diverse

0

Scenario:
l'applicazione cercherà nel database quasi tutte le colonne attraverso circa 8 tabelle / viste per la stringa definita e restituirà tutte le righe contenenti quella stringa (restituirà la raccolta di oggetti o JSON). All'inizio del database (DB2 v6) conterrà circa 100k di record

Quale approccio è migliore:

  • Caricare queste tabelle e associarle agli oggetti nella memoria dell'applicazione, cercando questi oggetti.
  • Mappatura di tabelle dal database al database incorporato nell'applicazione (in questo caso il DB JAVA), ricerca tramite il database incorporato.

Il primo è veloce ma al rovescio è che l'applicazione avrà bisogno di memoria (il primo prototipo è salito a .5 GB), il secondo è più lento e ha anche molta memoria.

Qualcuno ha provato qualcosa di simile o può puntare a una soluzione migliore per favore condividila.

    
posta TOM-12 05.02.2016 - 10:38
fonte

1 risposta

1

SQLite ha una estensione per la ricerca di testo completo . Ti suggerisco di dare un'occhiata alla documentazione. Potrebbe ottimizzare le ricerche perché creerebbe un indice invertito che mappa da ogni singolo termine o parola che appare nel set di dati alle posizioni in cui appare all'interno del contenuto della tabella. Tali ricerche dovrebbero essere più veloci del semplice rilascio di confronti SQL utilizzando l'operatore LIKE all'interno di ogni colonna di ogni tabella. Questo approccio è compatibile con la seconda opzione che stai prendendo in considerazione.

    
risposta data 05.02.2016 - 16:41
fonte

Leggi altre domande sui tag