2009-06-26 2 views
1

Ich habe eine Tabelle in der Datenbank, die 7k plus Datensätze hat. Ich habe eine Abfrage, die in dieser Tabelle für eine bestimmte ID sucht. (Id ist auto-inkrementiert)eine Abfrage optimieren

Abfrage wie this- ist>

select id,date_time from table order by date_time DESC; 

diese Abfrage wird an diesen 7k + Daten alle Such tun. ...... gibt es sowieso nicht, mit denen ich diese Abfrage optimieren kann, so dass die Suche nur auf 500 oder 1000 Datensätzen erfolgt .... wie diese Datensätze von Tag zu Tag zunehmen werden und meine Abfrage immer schwerer wird. Irgendwelche Vorschläge?????

+0

Ich habe meine Lösung :-D Vielen Dank für Ihre Anregungen !!!!! – developer

Antwort

2

Ich weiß nicht, ob im hier etwas fehlt, aber was ist falsch?

select id,date_time from table where id=?id order by date_time DESC; 

und id ist die Nummer der ID Sie ...

Und natürlich ID suchen sollte ein Primärindex sein.

1

Wenn id eindeutig ist (möglicherweise Ihr Primärschlüssel), müssen Sie nicht nach date_time suchen, und Sie werden garantiert nur maximal eine Zeile zurückgeben.

SELECT id, date_time FROM table WHERE id=<value>; 

Wenn id ist nicht einzigartig, dann noch Sie die gleiche Abfrage verwenden, sondern müssen auf Indizes, andere contraints suchen und/oder Caching außerhalb der Datenbank, wenn die Abfrage zu langsam wird.

+0

(ID wird automatisch inkrementiert) –