PDA

Visualizza versione completa : Queries per una chat su mySQL


Aquax
30-05-2009, 12.40.00
Ammetto di essere abbastanza ignorante in materia, ma piano piano modificando codici qua e la sono riuscito a mettere una chat su un mio spazio web di Altervista.

Prima avevo il database alla CLASSE 1, che mi garantiva 300 queries/h e non costava nulla.
Non me ne sono mai preoccupato anche xchè non ho mai utilizzato il databse.

Da quando xò ho messo la chat ho dovuto capire il funzionamento e ho dovuto aumentare la classe del databse.

Adesso l'ho messo sulla CLASSE 4, che mi da queries ILLIMITATE/h, e sicuramente va benissimo per la chat. Mi costa xò 350 punti ogni mese.

Volevo chiedervi, queste QUERIES, come si calcolano???
Cioè, in base al numero messaggi scambiati in chat??? O altro??

Xchè potrei altrimenti optare per la CLASSE 3 da 10.000 queries/h a 250 punti/mese o addirittura per la CLASSE 2 da 2000 queries/h a 100 punti al mese.

Dite che 2000 queries/h per una chat sono poche???
Di solito ci sono una decina di persone al giorno.

Cmq grazie per tutte le info che mi saprete dare :)

Alhazred
30-05-2009, 13.54.18
Per quanto ne sappia una chat non dovrebbe appoggiarsi su un db, dipende poi da come è fatta la chat ovviamente, penso però di poter dire che i messaggi che ci si scambiano non toccano minimamente il db a meno che tu non salvi esplicitamente ogni messaggio nel db, ma mi pare improbabile.
Al massimo le uniche cose che potrebbero essere messe sul db sarebbero i dati degli utenti se devono effettuare un login per accedere alla chat.
Quest'ultima cosa, salvo gestioni particolari, ti costerebbe al più un paio di queries per ogni utente che accede.

Aquax
30-05-2009, 14.45.36
Invece necessita del mySQL, anche se non saprei dirti il xchè, e inoltre la chat che ho creato è senza registrazione, basta solo mettere un nome e si entra, quindi non ci sono nemmeno nomi registrati.

Solo che all'inizio con il database a classe1 dopo pochi messaggi la chat si è bloccata.
Ora che ho la classe4 con queries illimitate la chat non si è piu bloccata. :mm:

Alhazred
30-05-2009, 19.36.56
Potresti provare a dare una letta al codice, quando avvengono gli accessi al db cosa si fa? Sapendo a cosa servono gli accessi al db sarebbe più facile fare una stima delle possibili queries e anche vedere se è possibile ridurle.

Aquax
31-05-2009, 10.42.29
Non saprei proprio dove andare a cercare, cmq da quello che so io questo è ciò che fa la chat : "The chat messages are stored in a MySQL database"

Quindi io immagino che chi scrive viene poi salvato sul database, e chi legge lo va a leggere sul database. Credo :mm: :mm:

Mi potresti mica dire dove andare a vedere quel codice di cui parli??? Sono proprio a secco di queste cose... :)

Grazie mille intanto per l'interesse :)

Alhazred
31-05-2009, 13.49.58
Beh, da quelle poche parole in inglese si capisce che si tratta di una chat un po' particolare.
La chat permette di far parlare 2 utenti alla volta (stile msn per capirci) oppure è una di quelle chat che appaiono su una pagina e chiunque può scrivere un messaggio leggibile da tutti coloro che si collegano a quella pagina?
Comunque nel db viene salvato ogni singolo messaggio inviato, ed ogni messaggio si traduce in almeno una query sul db, così come ogni visualizzazione di un messaggio si traduce in almeno una query.

Le pagine suppongo siano scritte in php, dunque dove avvengono delle interazioni col db dovresti trovare all'inizio della pagina una chiamata del tipo
$db = mysql_connect($host, $username, $password);

Aquax
31-05-2009, 14.10.13
La parte server, dove è posizionata la chat è in PHP, la parte client in JavaScript.
Dentro alla chat entrano tutti quelli che hanno il link, e non è limitata a 2 persone.

Quindi per avere una stima delle queries dovrei moltiplicare x2 il numero di messaggi scambiati, giusto??
Se è così, temo che le 10.000 queries/mese non siano sufficienti, xchè credo che 5000 messaggi in un mese, e quindi circa 160 messaggi al giorno, sono davvero pochi.

Alhazred
31-05-2009, 15.15.31
Potrebbe anche non bastare fare numero_messaggi x 2.
Io scrivo un messaggio e questo viene salvato nel db -> 1 query
poi 2 casi:
- il messaggio è mostrato dietro richiesta dalla pagina del visitatore quindi se ci sono 5 persone sulla pagina, per mostrare il mio messaggio verrà fatta 1 query per ogni utente -> 5 query per mostrare 1 messaggio
- il messaggio viene messo sulla pagina indifferentemente e potrà essere letto da chiunque si colleghi senza doverne fare richiesta -> 1 query per messaggio

Aquax
31-05-2009, 15.17.36
Eh si...
Xò già facendo il minimo, cioè x2, non mi bastano già le queries, per cui mi dovrò tenere la classe 4 di mysql con queries infinite.

Grazie mille x l'aiuto :)

Aquax
03-06-2009, 12.00.54
Aggiornamento.

Non so xchè non ci ho pensato prima, ma tramite il pannello di controllo del mio spazio web, sono potuto entrare su mio PhpMyAdmin e vedere il database "chat_messages" che risulta ora con 14.450 Record. Sarebbero le queries???

Se si, dal pannello ho anche la possibilità ovviamente di svuotare il database, quindi a questo punto potrei tenere sotto controllo il numero di queries e svuotarle eventualmente prima di raggiungere il limite.

PS: Sono entrato nella mia chat, e ho notato che se scrivo un messaggio e lo invio, mi aumenta di 1 Record.
Aumenta di 1 Record anche quanto un utente entra e 1 record quando esce.
Se l'altro utente però manda un messaggio il record aumenta sempre e solo di 1.

Alhazred
03-06-2009, 13.33.30
Quei 14.450 record (una riga all'interno di una tabella) che vedi sono solo i dati salvati nel db.
Una query è un'interrogazione, ovvero un qualsiasi comando che accede al db, ad esempio:
- inserire un nuovo record = 1 query
- aggiornare un record = 1 query
- leggere un record (o anche tutti o solo una parte all'interno della stessa tabella) = 1 query
- cancellare un record (o anche tutti o solo una parte all'interno della stessa tabella) = 1 query
e così via per tutte le cose che si possono fare su una tabella

Insomma potresti anche avere 1 solo record, ma se quel record viene richiesto da 1000 utenti avrai 1000 queries.

Aquax
03-06-2009, 16.55.23
Grazie ancora per le rix :)