|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
[database] Tabella con Milioni di righe e ForeignKey
Ho una tabella "libri" con i campi "Titolo" e "Descrizione" che ha 4 milioni di righe.
Per evitare di interrogare una tabella di 4 milioni di righe ho pensato di dividerla per argomento ( 20 tabelle da circa 200mila righe ( libro_giallo, libro_horror, ecc )). Nella tabella "lettori" quindi pensavo di inserire i seguenti campi: nome_lettore ( varchar ) libro_argomento ( int ) libro_id ( int ) Quindi invece della ForeignKey, uso degli integer "libro_argomento" ( che mi permette di accedere alla opportuna tabella ) e "libro_id" ( che mi permettere di accedere al libro della tabella specificata in "libro_argomento" ). Dite che è una buona soluzione NON usare i ForeignKey ed evitare di interrogare sempre una tabella da 4 milioni di righe ? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Non sono un grande esperto di database, quindi un paio di considerazioni niente affatto specifiche:
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
inoltre a mio avviso, un database un minimo ottimizzato, eventualmente creando un semplice indice sul capo argomento, crea automaticamente una struttura come quella da te descritta dietro le quinte
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
Scusate ho dimenticato di dire che su questa/e tabella/e verrà fatta un solo tipo di query tramite ajax con un campo di autocompletamento come Google Suggest.
La query è questa: Codice:
SELECT * FROM libri WHERE libro_titolo LIKE '.$q.'% LIMIT 100 Inoltre volevo dire che uso già l' indice sul campo libro_titolo e la tabella libri non verrà MAI modificata ( niente inserimenti e niente cancellazioni ne ora ne mai se non mooolto raramente ). . Ultima modifica di CercoAiutoo : 12-01-2010 alle 21:03. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
L'integrità referenziale appesantisce le operazioni di insert, update e delete, ma non quelle di select, per cui puoi benissimo utilizzarla ed evitare di usare 20 tabelle diverse che, a mio avviso, non risolvono il tuo problema.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
4 milioni di righe non mi sembrano tantissime, se accedi per indice... ma la query è effettivamente lenta o è una tua supposizione?
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 125
|
La query non so se è lenta... la sto provando sul mio computer e phpmyadmin mi dice che ci impiega 0.0010 secondi circa
Ultima modifica di CercoAiutoo : 13-01-2010 alle 11:59. |
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]() Quote:
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Eh si infatti, mitico Little Bobby Tables!
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
scusate l'ot
ma queste strisce dove le trovate?
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:59.





















