Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie działa domyślne sortowanie nalozone na tabeli
gpi
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.09.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował skowron-line 10.12.2011, 12:12:17
Go to the top of the page
+Quote Post
gpi
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.09.2008

Ostrzeżenie: (0%)
-----


Czyli daje sobie z tym spokoj w tym wypadku...
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
gpi
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.09.2008

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 11.12.2011, 10:41:48 ) *
Swoją drogą dlaczego nie możesz użyć order -a (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 06:13