2011-01-03 32 views
11

Khi chọn cột từ bảng MySQL, hiệu suất có bị ảnh hưởng bởi thứ tự mà bạn chọn các cột so với thứ tự trong bảng (không xem xét các chỉ mục có thể bao gồm các cột) không?Thứ tự các cột trong truy vấn có quan trọng không?

Ví dụ: bạn có bảng có các hàng uid, tên, bday và bạn có truy vấn sau.

SELECT uid, name, bday FROM table 

MySQL có thấy truy vấn sau bất kỳ cách nào khác và do đó gây ra bất kỳ loại hiệu suất nào?

SELECT uid, bday, name FROM table 

Trả lời

7

Thứ tự không quan trọng, thực ra, do đó bạn được tự do đặt hàng theo bất kỳ cách nào bạn muốn.

chỉnh sửa: Tôi đoán nền hơn một chút là hữu ích: Theo như tôi biết, quá trình tối ưu hóa bất kỳ truy vấn nào xảy ra trước khi xác định chính xác tập con nào của dữ liệu hàng đang được kéo. Vì vậy, trình tối ưu hóa truy vấn phân tích nó thành bảng đầu tiên cần xem xét, tham gia để thực hiện, chỉ mục để sử dụng, tổng hợp để áp dụng, v.v., và sau đó truy lục tập dữ liệu đó. Việc sắp xếp cột xảy ra giữa việc kéo dữ liệu và tạo thành tập kết quả, do đó dữ liệu thực sự "đến" theo thứ tự của cơ sở dữ liệu, và sau đó được sắp xếp lại khi nó được trả về ứng dụng của bạn.

2

Trong thực tế, tôi nghi ngờ có thể.

Với trình tối ưu hóa truy vấn phong nha: không nên.

Bạn chỉ có thể biết trường hợp của mình bằng cách đo. Và các phép đo có thể sẽ thay đổi khi phân phối các thay đổi dữ liệu trong cơ sở dữ liệu.

liên quan

Wazzy

0

Thứ tự của các thuộc tính được lựa chọn là không đáng kể. Các công cụ lưu trữ cơ bản chắc chắn sắp xếp các vị trí thuộc tính của chúng, nhưng bạn sẽ không nhất thiết phải biết cách sắp xếp cụ thể (đổi tên, thay đổi bảng, hàng so với cột) trong hầu hết các trường hợp có thể độc lập với mô tả bảng. dù sao. Thứ tự của bản trình bày vào tập kết quả sẽ không đáng kể về bất kỳ chi phí nào có thể đo lường được.

Các vấn đề liên quan