2011-01-03 20 views
11

Podczas wybierania kolumn z tabeli MySQL, na wydajność wpływa kolejność wybierania kolumn w porównaniu do ich kolejności w tabeli (bez uwzględniania indeksów, które mogą obejmować kolumny)?Czy kolejność kolumn w zapytaniu ma znaczenie?

Na przykład, masz tabelę z wierszami uid, name, bday i masz następujące zapytanie.

SELECT uid, name, bday FROM table 

Czy MySQL widzi następujące zapytanie w inny sposób, a zatem powoduje jakikolwiek sukces?

SELECT uid, bday, name FROM table 

Odpowiedz

7

Porządek nie ma znaczenia, tak więc możesz je zamówić, jak chcesz.

edytuj: Myślę, że trochę więcej tła jest pomocne: O ile mi wiadomo, proces optymalizacji każdego zapytania ma miejsce przed ustaleniem, który podzbiór danych wiersza jest ciągnięty. Optymalizator zapytań dzieli go na pierwszą tabelę, na którą należy spojrzeć, sprzężenia do wykonania, indeksy do użycia, agregaty do zastosowania itd., A następnie pobiera ten zestaw danych. Kolejność kolumn ma miejsce między ciągiem danych a utworzeniem zestawu wyników, więc dane faktycznie "przybywają" zgodnie z kolejnością w bazie danych, a następnie są ponownie porządkowane, ponieważ są zwracane do aplikacji.

2

W praktyce podejrzewam, że może.

Przydatny optymalizator zapytań: nie powinien.

Możesz powiedzieć tylko o swoich przypadkach, mierząc. Pomiary najprawdopodobniej ulegną zmianie w miarę zmiany rozkładu danych w bazie danych.

odniesieniu

Wazzy

0

Kolejność cech wybrany jest znikomy. Bazujące na nich silniki magazynowe z pewnością porządkują swoje lokalizacje atrybutów, ale niekoniecznie będziesz miał możliwość poznania konkretnej kolejności (nazwy, tabele zmian, wiersze kontra zbiory kolumn) w większości przypadków mogą być niezależne od opisu tabeli, który jest po prostu meta-danymi tak czy inaczej. Kolejność prezentacji w zestawie wyników byłaby niewielka pod względem mierzalnego narzutu.

Powiązane problemy