Peso query? postato il 14/12/2010 10:37:52 nel forum programmazione, gdrcd, open source, hosting
Salve a tutti!
Stò sviluppando un mio progetto completamente scritto da zero e ormai che il gioco è diventato parecchio grosso (sono a 7000righe) devo cercare di risparmiare tempo sulle operazioni..
E' meglio fare 4 colonne o 1 colonna con dati serializzati?
Utilizzo la funzione serialize() e unserialize(), linguaggio php, database mysql
Il server impiega + tempo a fare 10volte 1 query per leggere 1 riga o 10 righe con una query?XD scusate la demenza del post ma mi ci intrippo in queste cose... :D
p.s. non credo sia più pesante di wordpress, né a livello query né il codice... se non ricordo male attualmente nel peggiore dei casi si verificano 15 query...
Pagine → 1
14/12/2010 10:43:56 e modificato da clemence il 14/12/2010 10:44:31
7000 righe non è molto grosso, non ti preoccupare.
In ogni caso usare 4 colonne di tabella non è molto anche se il programma fosse gigante.
E' meglio una query da 10 righe che 10 query da una riga.
14/12/2010 12:46:52
Grazie della risposta!
Non ho 4 colonne sono più di 20 e dovrei leggerle per ogni utente connesso, ad esempio, se in dato luogo ci sono 5 player, devo andare a leggere x ognuno di essi il loro nome appellativo classe livello e cose del genere..
Mi sono fatto una funzione che legge tutta la tabella e da qualsiasi valore posso ricavare qualsiasi valore.. quindi ho SOLTANTO 1 query un pò pesantuccia..
in questo caso mi conviene fare 1 query per ogni pg presente?
Oppure che metodo mi consigli per visualizzare i player presenti?
grazie ancora
14/12/2010 13:41:00
Non è mai una soluzione fare una query per riga che vuoi estrarre.
14/12/2010 21:56:52
Conta che su un qualsiasi calcolatore, in una forma a matrice o tabella, il vero problema non sono le righe ma le colonne. Se hai mille righe e cinque campi è una cosa, se hai cinque righe e mille campi è decisamente infinitamente peggio.
Per questo la cosa migliore è suddividere il tutto in più tabelle e usare join o where fatti bene.
15/12/2010 00:35:56
Soprattutto, dimensiona bene tali campi.
Il classico esempio di dimensionamento scorretto può essere impostare un campo ID autoincrementante ad INT(11) quando sai che non ci arriverai manco dopo 10 anni di attività a numeri che hanno davvero bisogno di una simile capacità.
Definisci sempre indici di ricerca sui campi che sfrutti nelle clausole di WHERE così da snellire notevolmente le ricerche sulle tabelle e come suggerisce dob fai join sensate o se puoi evitale.
Ottimizza le tabelle quando fai modifiche su grosse quantità di dati nelle stesse col comando OPTIMIZE.
In linea di massima comunque questi consigli, complementari agli altri già esposti, sono piccole buone norme che bastano e avanzano per un applicazione come può essere un gdr-online play by chat.
15/12/2010 22:17:47
Grazie mille per i consigli! sono già dietro a moddare... :)
Aggiungo una piccola nota: ricordate di utilizzare la funzione LIMIT! quando ad esempio si deve leggere 1 riga sola (limit 1)..
byez
17/04/2013 12:38:58
Come ti hanno già detto tutti, occhio al "peso" dei dati che ritorni.
7000 elementi non è "tanto". Quello che pesa, per un web server non è tanto il fare una query corposa, quanto farne magari 200 piccole.
I DBMS moderni hanno modo di ottimizzare le queries complesse e automaticamente la query viene già riscritta nella sua forma ottimale.
Evitare di farne troppe, evitare di fare join megalitici... per il resto vai tranquillo :)
:-)
17/04/2013 14:40:12
Questo post non riceve update dal 2010, probabilmente gli autori sono morti.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Il gestore di Exclusive Villa GdR ha risposto alla recensione di sparhawack
New Orleans: Nuova Trama - Ottobre 2025
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
I dati del generatore di rank sono stati aggiornati!
Mondo Hogwarts: Sull'Hogwarts Express!
New Star Wars Gdr: Quest Vocale: Boom-Boom Glitter...stim
RAID Shadow Legends: Riequilibrare il set di attrezzi Chronofage
CRSED: F.O.A.D. → Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita! Il giocatore sarà accompagnato da armi realistiche e magie!
Enlisted: Modifiche al punteggio di battaglia delle armi
Le Cronache di Raja Dunia: Rework Razza Umani
Shadow Scape: ✨ Ritorno dalle vacanze!
Storie di Agarthi: Quest: alla ricerca d'un varco per il limbo
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
RAID Shadow Legends: Aggiornamento 10.70.0 👹
Il gestore di Age of Crystals ha risposto alla recensione di bloodymary1900
Nyx Insight - Project S.E.T.: Comunicazione / Riassetto
glaucozilla ha recensito La Tana del Ladro
Sponsorizzati con noi! → Sponsorizza il tuo gioco su GDR-online! Trova nuovi giocatori fra i migliaia di appassionati che ogni giorno visitano il portale!
Wings of Memories - Intervista allo staff del GdR ambientato nel mondo di Final Fantasy: Wings of Memories - FFIX
Berlino - Recensione del GDR Berlino. Avventurati ina una claustrofobica città...
eXtremelot - ExtremeLot lascia il web dopo vent’anni.. :-(
Star Trek LCARS - Recensione del gioco ambientato nel mondo di Star Trek DS9!
Analisi Critica a Lot - Eleonora Scorti e una sua critica ad eXtremelot
Revelio Hogwarts GdR - Intervista alla gestrice del play by forum potteriano Revelio Hogwarts GdR
Codici di Stato HTTP - Guida ai codici di Stato HTTP e relativi errori! Navighiamo informati!
Dota 2 - Vi spieghiamo come vincere soldi giocando a Dota 2!