in effetti....
Unfortunately, variables cannot be used in the LIMIT clause, otherwise the entire thing could be done completely in SQL.
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.
già, hai ragione, l'avevo scordato.Originariamente inviato da piero.mac
Giusto, ma non credo si possano usare le variabili nel LIMIT...
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 ...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.
sul manuale ci sono alcune ottimizzazioni
http://dev.mysql.com/doc/refman/5.0/...imization.html
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
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 ..![]()
embé? :master:Originariamente inviato da uMoR
Il problema è che il valore della colonna su cui faccio la where non è univoco.
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.
Non lo sapevoSe 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.
Adesso provo a creare l'indice.. vediamo se cambia qualcosa..
oppure entrambe nella stessa chiave primaria.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.
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.
Lo scopo ?
Se rileggi nella pagina prima c'è scritto, è a fini statistici..
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.....Originariamente inviato da uMoR
Ok ho messo a creare l'indice.. su 90milioni di record..
povero server!![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.