Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Stima query utilizzati

  1. #1

    Stima query utilizzati

    Salve, io ho un database mysql su cui ho istallato una chat.
    La potenza del database che mi è garantita è di 4000 querys/orari secondo voi riesce a sostenere un chat con 20-30 persone?

    In oltre avrei un altra domanda, come posso fare un stima dei query che ho utilizzato o che sto utilizzando?

    su phpmyadmin ho trovato questi valori



    ajax_chat_messages

    record 455

    dimensione 33,2 KiB

    cosa significa?

  2. #2
    Utente di HTML.it L'avatar di dany-
    Registrato dal
    Jul 2000
    Messaggi
    365
    I numeri che hai trovato si riferiscono alla dimensione della tabella dei messaggi della chat.. adesso hai 455 righe di chat. Se apri la tabella dovresti riuscire a visualizzare i messaggi che sono stati scritti.

    Il numero di query dipende da quanti messaggi vengono mandati da queste 20-30 persone. Fai il conto che quando scrivi un messaggio, premi invio e il sito fa una query di inserimento del testo nella tabella. Di solito poi le chat sono impostate in modo che in automatico ogni 15/60 secondi facciano un reload della pagina per mostrare gli eventuali messaggi nuovi.

    Quindi: 30 persone * 4 caricamenti/minuto * 60 minuti = 7200 query solo per mostrare se ci sono messaggi nuovi ogni ora.

    Se in più magari qualcuno si mette anche a scrivere...

  3. #3
    wow 7200sono parecchi, ok ti ringrazio dell'informazione

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    per contare le query si usa, tipicamente, un proxy mysql, ma è una misurazione, e non una stima (come invece richiedi)
    ---
    Nel tuo caso le query (che poi non saranno solo query, ma chiamiamole così per semplicità) disponibili sono effettivamente poche
    4000 / 20 = 200 per utente all'ora = circa 3 per utente AL MINUTO.

  5. #5
    Come si chiama questo proxy?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    MySQL Proxy

  7. #7
    beh, molto più semplicemente, dato soprattutto che sei in hosting, probabilmente un hosting gratuito, e che quindi non potrai usare software di questo tipo, perché non scrivi su un file le query che lanci insieme all'orario?

    Per farlo basta che:
    - apri un file presente nella document root del sito (la path la prendi da $_SERVER['DOCUMENT_ROOT']) in modalità append
    - effettui il lock con flock($fp, LOCK_EX);
    - ti sposti alla fine del file usando fseek($fp, 0, SEEK_END) (tra l'apertura ed il lock potrebbero esserci scritture e tu andresti a scrivere su roba già scritta)
    - scrivi sul file con fwrite
    - effettui l'unlock con funlock($fp, LOCK_UN);
    - chiudi il file fclose($fp);

    però fare tutto questo senza avere un wrapper le funzioni del database (in questo caso mysql) è un pò un casino

    eventualmente puoi fare una funzione tipo mysql_query_log che chiami al posto di mysql_query e poi tramite una variabile di configurazione mysql_query_log decide se scrivere il log delle query o meno
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Originariamente inviato da daniele_dll
    beh, molto più semplicemente, dato soprattutto che sei in hosting, probabilmente un hosting gratuito, e che quindi non potrai usare software di questo tipo, perché non scrivi su un file le query che lanci insieme all'orario?

    Per farlo basta che:
    - apri un file presente nella document root del sito (la path la prendi da $_SERVER['DOCUMENT_ROOT']) in modalità append
    - effettui il lock con flock($fp, LOCK_EX);
    - ti sposti alla fine del file usando fseek($fp, 0, SEEK_END) (tra l'apertura ed il lock potrebbero esserci scritture e tu andresti a scrivere su roba già scritta)
    - scrivi sul file con fwrite
    - effettui l'unlock con funlock($fp, LOCK_UN);
    - chiudi il file fclose($fp);

    però fare tutto questo senza avere un wrapper le funzioni del database (in questo caso mysql) è un pò un casino

    eventualmente puoi fare una funzione tipo mysql_query_log che chiami al posto di mysql_query e poi tramite una variabile di configurazione mysql_query_log decide se scrivere il log delle query o meno
    Scusami ma non ho capito quasi nulla

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da XxcoralloxX
    Scusami ma non ho capito quasi nulla
    Dove, nel sorgente, chiami le procedure che mandano i comandi a mysql le fai scrivere in un file di testo locale, che poi aprirai per vedere cosa c'è.

    Se usi funzioni "globali" del tipo lancia_query_sql(...istruzioni...) il log lo metti direttamente lì (nella funzione lancia_query_sql), ed è facile.

    se invece hai 100 modi diversi devi mettere il log nei 100 posti diversi

  10. #10
    dovrei farlo in php questo codice? o in java script?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.