Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa domyślne sortowanie nalozone na tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
gpi
Witam,
Chcialbym troche zoptymalizowac swoje zapytania i dla tabeli "Firm" z ktorej wyniki zawsze bede zwracal wedlug wskaznika "priorytet", zamiast dodawac ORDER BY do kazdego query mozna nalozyc takie sortowanie domyslnie na poziomie tabeli. Niestety nie dziala to u mnie.

Domyslne sortowanie ustawiam wg priorytetu malejaco, wiec wykonuje takie polecenie:
  1. ALTER TABLE `firmy` ORDER BY `priorytet` DESC


Sotrowanie nie dziala, oczywiscie jesli dodam order by w zapytaniu, wszystko jest opoprawnie:
  1. SELECT * FROM firmy ORDER BY piorytet DESC



Wersja bazy: 5.1.37 Windows
Tabela typu: InnoDB

Mial ktos podobny problem?
skowron-line
Cytat
ORDER BY does not make sense for InnoDB tables that contain a user-defined clustered index (PRIMARY KEY or NOT NULL UNIQUE index). InnoDB always orders table rows according to such an index if one is present.

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
gpi
Czyli daje sobie z tym spokoj w tym wypadku...
skowron-line
Jeżeli po przeczytaniu tego co wkleiłem stwierdziłeś że tak masz, to to będzie chyba najlepsze rozwiązanie.
Swoją drogą dlaczego nie możesz użyć order -a questionmark.gif
gpi
Cytat(skowron-line @ 11.12.2011, 10:41:48 ) *
Swoją drogą dlaczego nie możesz użyć order -a questionmark.gif


W tabeli tej mam ponad 4 mln rekordow, wiec tocze walke o ocalenie kazdej dziesiatnej sekundy wykonywanego na niej selecta, a podobno ORDER BY na tabeli jest szybszy niz wysylany razem z query.
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.