Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Kolejność zwracana przez SELECT
aeaeae
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Cześć,

mam tabelę:

  1. CREATE TABLE IF NOT EXISTS `c`
  2. (
  3. `cid` int(1) UNSIGNED NOT NULL,
  4. `cn` char(14) NOT NULL,
  5. PRIMARY KEY (`cid`)
  6. )
  7. engine=innodb
  8. DEFAULT charset=utf8;


Czy zapytanie:

  1. SELECT `cn` FROM `c`;


zwróci zawsze wiersze posortowane według klucza? Czy muszę dopisać "order by `cid`"? Jak takie dopisanie sortowania do kolumny z kluczem ma się do wydajności?

Ten post edytował aeaeae 2.01.2016, 23:29:08
Go to the top of the page
+Quote Post
Johnas
post
Post #2





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


  1. SELECT `cn` FROM `c` ORDER BY `column_name` ASC;


lub

  1. SELECT `cn` FROM `c` ORDER BY `column_name` DESC;


Nie przeszkadza to w wydajności, ponieważ baza jest skonstruowana do filtracji dużej ilości wyników... Możesz sobie napisać prosty skrypt do sprawdzania różnicy pomiędzy poszczególnymi zapytaniami i wtedy sobie porównać te wyniki smile.gif

Więcej znajdziesz tutaj:
http://www.w3schools.com/sql/sql_orderby.asp

Ten post edytował GodOfPeople 3.01.2016, 03:25:00


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
aeaeae
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

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


Nie wyraziłem się dość ściśle. Mówiąc o kluczu miałem na myśli klucz główny, a nie ogólnie klucz sortowania.

Jeszcze raz, trochę inaczej. Mam tabelę:

  1. CREATE TABLE IF NOT EXISTS `c`
  2. (
  3. `cid` int(1),
  4. `cn` char(14),
  5. PRIMARY KEY (`cid`)
  6. );


Czy poniższe zapytania zwrócą zawsze tak samo posortowane wyniki z taką samą szybkością?

  1. SELECT `cn` FROM `c`;


  1. SELECT `cn` FROM `c` ORDER BY `cid`;


Dobry pomysł ze sprawdzeniem czasu, poeksperymentuje w wolnym czasie, ale wolałbym pewną odpowiedź, najlepiej z jakimś odnośnikiem do źródła.
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


http://dev.mysql.com/doc/refman/5.7/en/using-explain.html
Sprawdź na porcji danych jaki jest efekt. Dla konkretnej tabeli, konkretnych indeksów.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 06:59