Originariamente inviato da IroN@xiD
Secondo me no. Poi ti conviene provare, basta che dai qualche sql direttamente da console per vedere se ho ragione oppure no.

Ma così a primo impatto direi che non puoi rallentare.
Perchè tanto tu finisci per fare cmq un operazione sul campo data quando crei l'ordinamento con la query attuale (e lo fai sempre per tutti i record dell'utente) con l'aggravio maggiore di dover anche fare l'ordinamento.

Edit: mi sono accorto che non ordinavi sulla data. Quindi quello che ho scritto sopra a proposito dell'operazione non conta.

Poi, a discapito di altre ipotesi più catastrofiche, puoi anche decidere di lavorare con i timestamp (sempre che tu possa farlo).

Fai una prova con qualche query da console.

Edit2: se decidi di provare la tua proposta iniziale puoi usare data_seek. Inoltre mi chiedevo, ma sul limit non si può usare un valore fornito da sql? Conti i record trovati con where e ti fai restituire solo gli ultimi 10 così skippi l'ordinamento?
ciao,
avevi ragione.
ho provato una query di questo tipo:
SELECT id, mittente, oggetto , data from messaggi where id_mittente = 18145 and fl<>2 and date > '2005-10-01 16:20:15' ORDER BY id DESC limit 0, 10
ovvero mostro solo le date dopo quella data e la query risulta molto + veloce perchè ha meno records da ordinare come dicevi tu. ma se io ora mettessi un indice su date la query potrebbe risultare ancora + veloce?