Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]INDEX który lepszy
Forum PHP.pl > Forum > Przedszkole
xavierek
WITAM mam przykładową bazę ID | COS | DATE

chce pobrać z bazy najnowszy wpis coś o danym id, robię to za pomocą SELECT cos FROM xxx WHERE id=123 ORDER BY date DESC LIMIT 1

pytanie brzmi jakie indeksy najlepiej wspomogą tego tupu zapytanie

sam index na id i osobny na date
czy łączny na id i date


i ewentualnie czy jest jakis program do pisania jaki index do jakiego zapytania albo jakiś poradnik
sada
jak pytasz WHERE id=123
to ORDER I LIMIT jest bez sensu bo i tak dostaniesz jeden rekord chyba że id to u ciebie nie jest UNIQUE
xavierek
nie jest bo dla każdego id może być 5 wpisów z rożna data a mnie na aktualnej podstronie interesuje tylko ostatnie
sada
  1. SELECT cos FROM xxx WHERE id=123 ORDER BY date DESC LIMIT 1


powinno być
  1. SELECT cos, date FROM xxx WHERE id=123 ORDER BY date DESC LIMIT 1


jeśli masz PRIMARY KEY lub UNIQUE to index bez powtórzeń jest tworzony automatycznie
a indexy złożone to musisz się zastanowić , to ci pomoże:
http://www.sql-server.website.pl/ind.htm

ylk
Cytat(sada @ 26.08.2011, 13:55:41 ) *
powinno być
  1. SELECT cos, date FROM xxx WHERE id=123 ORDER BY date DESC LIMIT 1


A po co niby ma pobierać datę, po której jedynie chce posortować?
sada
Rzeczywiści w phpmyadmin działają obie wersje , natomiast w opracowaniach SQL wyraźnie jest napisane , że po SELECT musi wystąpić kolumna z ORDER BY , co mi się wydaje bardzo logiczne.
xavierek
a czy ktoś może z tym przeprowadzał testy ?

bo wydaje sie to logiczne jeżeli da się select id, datę ORDER by datę kozysta z indexu id, date a tak by Koszysta tylko z id i to segregowal
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.