+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: query multi thread

  1. #1
    dancar ora è in linea Novello
    Post
    33

    query multi thread

    Salve ragazzi in python sto facendo uno script che fa quanto segue:
    ho una tabella strutturata così

    ID | Nome Utente | Importo speso

    il mio obbiettivo e prelevare la media di quanto hanno speso un insieme di utenti (sarebbe la famiglia)
    quindi diciamo che nel mio caso io abbia come nomi "Franco","Maria","Enrico" dovrei fare una query per volta per prelevare tutte quelle medie, quindi in python ho creato un thread per ogni Utente, solo che, si è più veloce rispetto a farli uno per volta ma mi sembra di aver notato che vadano vengano eseguite due per volta. (Da notare che l'uso del disco SSD va a 100%) ma il processo mysql usa sempre e solo un core.
    dite mi devo accontentare di quella velocità o c'è un modo per farli più velocemente?
    tutti i consigli sono ben accetti (anche se penso di sapere già la risposta, ovvero che sarà il disco a fare da collo di bottiglia)

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,774
    Blogs
    5
    Un thread per ogni nominativo? Ma che stai facendo?

    Quale sarebbe questa query che stai usando e come sono fatte le tabelle su cui operi?

    Penso proprio che te ne serva una sola.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    dancar ora è in linea Novello
    Post
    33
    si perché se la tabella è molto grande (100.000.000 di nominativi), scansionare un nome per volta impiegherebbe un eternità, se hai altri approcci più veloce puoi suggerirmeli?
    la tabella ha un indice primario su ID e un indice su nome utente, la query è semplice

    Select AVG(ImportoSpeso) from SpeseUtenti where Nome Utente = 'NomeUtente'

    per la precisione la tabella ha come motore mysam.
    vorrei sapere solo se ci fosse un modo per esegure quelle query con i thread più velocemente o quello che ho fatto io va già bene.

  4. #4
    Luogo
    Lazio
    Post
    1,702
    Blogs
    21
    Quelli che stai facendo non ha senso nel caso in questione.
    Se vuoi la media per ogni nome usa
    Select nome, avg...
    e lascia al motore del db il compito
    di gestire le risorse disponibili
    Ciao sspintux
    ------------------------------------------------------------

    O Santo Protettore dell'informatico quadratico medio, se puoi allontana da me questo cetriolo amaro!
    Azz! ... questo è un grande porck-around; potremmo addirittura farlo passare per una funzionalità avanzata

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi