Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 42
  1. #11
    in effetti....

    Unfortunately, variables cannot be used in the LIMIT clause, otherwise the entire thing could be done completely in SQL.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  2. #12
    Originariamente inviato da piero.mac
    Giusto, ma non credo si possano usare le variabili nel LIMIT...
    già, hai ragione, l'avevo scordato.
    umor, io una proposta credo sensata (piero, correggimi se ho detto una stronzata) te l'ho fatta, quella dell'indice.
    Gli indici, se usati con criterio, servono proprio per velocizzare le SELECT.

    Nel tuo caso, non avendo indicizzato la colonna su cui fai il controllo nel WHERE, obblighi il server a scorrere l'intera tabella per verificare la condizione.
    Se invece hai un indice su quella colonna, viene usato l'indice per la verifica della WHERE, e l'operazione è sicuramente più veloce.

  3. #13
    Originariamente inviato da skidx
    già, hai ragione, l'avevo scordato.
    umor, io una proposta credo sensata (piero, correggimi se ho detto una stronzata) te l'ho fatta, quella dell'indice.
    Gli indici, se usati con criterio, servono proprio per velocizzare le SELECT.

    Nel tuo caso, non avendo indicizzato la colonna su cui fai il controllo nel WHERE, obblighi il server a scorrere l'intera tabella per verificare la condizione.
    Se invece hai un indice su quella colonna, viene usato l'indice per la verifica della WHERE, e l'operazione è sicuramente più veloce.
    certamente una tabella cosi' dovrebbe gia' essere quantomeno indicizzata ed essere InnoDB ...

    sul manuale ci sono alcune ottimizzazioni

    http://dev.mysql.com/doc/refman/5.0/...imization.html

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #14
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Il problema è che il valore della colonna su cui faccio la where non è univoco.

    Per esempio:
    campo1 - campo2:
    1 - 1
    1 - 2
    1 - 3
    1 - 1
    1 - 5
    2 - 1
    3 - 2
    ...

    io faccio:
    select campo2 from tabella where campo1=1;

    Mi serve per fare dei calcoli statistici..
    Quindi i campi ripetuti mi servono perchè con il random ho più probabilità di pescare 1-1 (poichè appare 2 volte) che 1-3 che appare una volta sola.. capito circa ?

    Questa era la soluzione piu semplice che mi era venuta in mente, ma anche la meno scalabile e la più stupida.. se avete qualche idea ..

  5. #15
    Originariamente inviato da uMoR
    Il problema è che il valore della colonna su cui faccio la where non è univoco.
    embé? :master:

    Mica si indicizzano solo le chiavi primarie o i campi "UNIQUE", gli indici si usano anche (tra le altre cose) nelle colonne che andrai a usare spesso per fare delle ricerche.

    Se ricerchi per ID non c'è problema, c'è già l'indice della chiave primaria, ma se ricerchi spesso per un altro campo è opportuno indicizzare anche quella colonna.

  6. #16
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Se ricerchi per ID non c'è problema, c'è già l'indice della chiave primaria, ma se ricerchi spesso per un altro campo è opportuno indicizzare anche quella colonna.
    Non lo sapevo
    Adesso provo a creare l'indice.. vediamo se cambia qualcosa..

  7. #17
    Originariamente inviato da skidx
    embé? :master:

    Mica si indicizzano solo le chiavi primarie o i campi "UNIQUE", gli indici si usano anche (tra le altre cose) nelle colonne che andrai a usare spesso per fare delle ricerche.

    Se ricerchi per ID non c'è problema, c'è già l'indice della chiave primaria, ma se ricerchi spesso per un altro campo è opportuno indicizzare anche quella colonna.
    oppure entrambe nella stessa chiave primaria.

    Non conosco lo scopo, ma mi vengono anche dubbi che sia proprio necessaria una tabella e non un generatore di numeri casuali.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #18
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Lo scopo ?
    Se rileggi nella pagina prima c'è scritto, è a fini statistici..

  9. #19
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    2,460
    Ok ho messo a creare l'indice.. su 90milioni di record..
    povero server!

  10. #20
    Originariamente inviato da uMoR
    Ok ho messo a creare l'indice.. su 90milioni di record..
    povero server!
    mi sa che l'indice serve a ben poco perche' la colonna in ORDER BY e' diversa dalla colonna nel WHERE.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.