Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-01-2010, 18:35   #1
CercoAiutoo
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 ?
CercoAiutoo è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2010, 20:35   #2
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Non sono un grande esperto di database, quindi un paio di considerazioni niente affatto specifiche:
  1. L'aumento di efficienza della tua soluzione (20 tabelle più piccole anzichè una sola) si basa sull'ipotesi che lo stesso lettore tenda a preferire libri dello stesso genere: troppi lettori "onnivori" ti costringerebbero a interrogare comunque l'unione di tutte le tabelle che hai creato.
  2. E' vero, non utilizzare la clausola di integrità referenziale probabilmente velocizza le operazioni del database, ma rallenterà il tuo software perchè devi implementarla "a mano" (che succede, se elimini un libro dall'elenco, ai record collegati)? Anche qui, spero che tu abbia controllato che i costi non superino i benefici. Ovviamente, il costo di una JOIN, con o senza la Foreign Key, è identico: anzi, tu devi prima fare un test per individuare la tabella dei libri su cui eseguire la query.
  3. Per una questione di nomi, magari chiamerei la seconda tabella "letture" e non "lettori", in quanto in effetti ogni riga identifica un libro letto da una certa persona, non un (solo) lettore specifico.
__________________
"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
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2010, 20:38   #3
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
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
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2010, 20:50   #4
CercoAiutoo
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.
CercoAiutoo è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 06:56   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 08:57   #6
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da CercoAiutoo Guarda i messaggi
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
.
Non vedo l'ora di cercare il mio libro preferito: "foobar'; drop table libri; --"

4 milioni di righe non mi sembrano tantissime, se accedi per indice... ma la query è effettivamente lenta o è una tua supposizione?
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 11:54   #7
CercoAiutoo
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.
CercoAiutoo è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 12:42   #8
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da shinya Guarda i messaggi
Non vedo l'ora di cercare il mio libro preferito: "foobar'; drop table libri; --"
Mi ricorda qualcosa ...



Quote:
4 milioni di righe non mi sembrano tantissime, se accedi per indice... ma la query è effettivamente lenta o è una tua supposizione?
Infatti non dovrebbe essere molto lenta, una ottimizzazione del genere aspetterei di avere dei dati dai dei test sotto carico.
__________________
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
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 13:37   #9
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Mi ricorda qualcosa ...
Eh si infatti, mitico Little Bobby Tables!
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 16:24   #10
wizard1993
Senior Member
 
L'Avatar di wizard1993
 
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
wizard1993 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2010, 16:50   #11
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da wizard1993 Guarda i messaggi
scusate l'ot
ma queste strisce dove le trovate?
http://xkcd.com/
shinya è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
Little Snitch su Linux: finalmente dispo...
John Deere accetta un accordo da 99 mili...
Gli astronauti di Artemis II osservano i...
OpenAI lancia ChatGPT Pro da 100 dollari...
Allarme rosso: CPU-Z e HWMonitor, segnal...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v