11.4. ������ORDER BY

���˼򵥵ز��Ҳ�ѯҪ���ص����⣬һ���������ܻ���Ҫ��������ָ����˳�򴫵ݡ���ʹ�ò�ѯ�е�ORDER BY����Ҫ�����������衣��PostgreSQL��ǰ֧�ֵ����������У�ֻ��B-tree���Բ�������������������������ͻ������һ��û��ָ��������ʵ����ص�˳�򷵻ء�

�滮���ῼ�������ַ�ʽ������һ��ORDER BY˵����ɨ��һ������˵���Ŀ���������������������˳��ɨ���Ȼ������ʽ���򡣶���һ����Ҫɨ����Ĵ󲿷ֵIJ�ѯ��һ����ʽ������ܿ��ܱ�ʹ��һ���������죬��Ϊ��˳�����ģʽʹ��������Ҫ�Ĵ���I/O���١�ֻ������������Ҫ��ȡ��ʱ�������Ż�����á�һ����Ҫ�����������ORDER BY��LIMIT n����ʹ�ã�һ����ʽ�����򽫻ᴦ�����е�������ȷ����ǰ���n�У��������һ������ORDER BY��������ǰn�н��ᱻֱ�ӻ�ȡ�Ҹ�������Ҫɨ��ʣ�µ����ݡ�

Ĭ������£�B-tree������������������ʽ�洢��������ֵ�����������ζ�Ŷ���x��������һ��ǰ��ɨ�轫��������ORDER BY x�����߸�������ʽ��ORDER BY x ASC NULLS LAST���Ľ��������Ҳ���Ա�����ɨ�裬��������ORDER BY x DESC��ORDER BY x DESC NULLS FIRST�� NULLS FIRST��ORDER BY DESC��Ĭ���������

���ǿ����ڴ���B-tree����ʱͨ��ASC��DESC��NULLS FIRST��NULLS LASTѡ�����ı��������������磺

CREATE INDEX test2_info_nulls_low ON test2 (info NULLS FIRST);
CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST);

һ��������洢�ҽ���ֵǰ�õ��������Ը���ɨ�跽����֧��ORDER BY x ASC NULLS FIRST�� ORDER BY x DESC NULLS LAST��

���߿��ܻ��ɻ�ΪʲôҪ�鷳���ṩ�����ĸ�ѡ���Ϊ����ѡ����ͬ����ɨ��ĸ��ʿ��Ը�������ORDER BY�ı��塣�ڵ�����������Щѡ��ȷʵ�����࣬�����ڶ�������������ȴ�����á�����(x, y)�ϵ�һ������������������ͨ��ǰ��ɨ������ORDER BY x, y������ͨ������ɨ������ORDER BY x DESC, y DESC������Ӧ�ÿ�����ҪƵ����ʹ��ORDER BY x ASC, y DESC��������û�а취��ͨ���������еõ�����˳�򣬵����������������Ϊ(x ASC, y DESC)����(x DESC, y ASC)�Ϳ��Բ�����������

��Ȼ�����з�Ĭ��������������൱ר�ŵ����ԣ�������ʱ���ǻ�Ϊ�ض���ѯ�ṩ�޴���ٶ��������Ƿ�ֵ��ά������һ������ȡ�������ǻ��Ƶ����ʹ����Ҫ��������IJ�ѯ��