Ho un progetto con 2 applicazioni (libri e lettore).Tavolo Django con milioni di righe
applicazioneLibri ha un tavolo con 4 Milioni di righe con questi campi:
book_title = models.CharField(max_length=40)
book_description = models.CharField(max_length=400)
Per evitare di interrogare il database con 4 Milioni di righe, sto pensando di dividerlo per argomento (20 modelli con 20 . tabelle con 200.000 righe (book_horror, book_drammatic, ecc)
In "lettore" di applicazione, sto pensando di inserire questi campi:
reader_name = models.CharField(max_length=20, blank=True)
book_subject = models.IntegerField()
book_id = models.IntegerField()
Così, invece di ESTERA nKey, sto pensando di usare un intero "book_subject" (che consente di accedere alla tabella appropriata) e "book_id" (che consente di accedere al libro nella tabella specificata in "book_subject").
È una buona soluzione per evitare di interrogare una tabella con 4 milioni di righe?
Esiste una soluzione alternativa?
Grazie^__^
4 milioni non sono molti, si ha un caso di ottimizzazione prematura. – Tobu
La tabella viene interrogato da Ajax utilizzando un campo di completamento automatico con questo query nel views.py: books.objects.filter (book_title__istartswith = request.GET [ 'q']) [: 100] – xRobot
Se si sta eseguendo la query di un tabella su un campo di testo e le prestazioni sono il problema, si può scegliere di implementare la ricerca full-text. Tuttavia, le dimensioni del campo interrogato sono solo 40 caratteri, e non sono sicuro che rappresenti un grosso problema per il db. – shanyu