- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Dubbio su LIMIT mysql
-
Dubbio su LIMIT mysql
Mi è venuto un dubbio sul LIMIT mysql e volevo un po' capire come fare.
Se ho una tabella con 70.000 dati la metto come limit 10, io visualizzo solo i primi 10 dati.
Ma nella query gli altri dati vengono pure letti? Faccio questa domanda perché ho delle query con tempi di risposta lunghi e volevo capire se il limit riduce o no i tempi di risposta.Ecco un'esempio di query che faccio:
[PHP]
SELECT * FROM tabella WHERE .... paremetri LIMIT 10
[/PHP]
-
Ciao freebreathe
con LIMIT non dovrebbe avvenire la scansione di tutta la tabella.
Nelle query con cui hai problemi hai anche ORDER BY vero?
-
Si, c'è anche ORDER BY. Il dubbio mi è venuto guardando le statistiche delle query più lente, quando ho letto "Rows_sent: 15 Rows_examined: 7305"
-
Prova a mettere il campo che usi in ORDER BY come indice.
-
Anche il campo che uso come ORDER BY è indicizzato
-
Se è come indice non dovrebbe esaminarli tutti in teoria.
-
select id from tabella where cognome = 'miocognome' limit 0, 10 order by nome asc
in questo caso devi indicizzare cognome e nome il resto non serve. se prendi 10 dati verranno letti solo i 10 dati
i dati poi sono tanti quindi magari fai un ottimizzazione della tabella
-
Vi ringrazio per i vostri consigli, cercherò di ottimizzare le ricerche e di non appesantire troppo il db.