CREATE INDEX

Name

CREATE INDEX -- ����һ��������

Synopsis

CREATE [ UNIQUE ] INDEX name ON table [ USING method ]
    ( { column | ( expression ) } [ opclass ] [, ...] )
    [ TABLESPACE tablespace ]
    [ WHERE predicate ]

����

CREATE INDEX ��ָ���ı��Ϲ���һ����Ϊ index_name ��������������Ҫ����������ݿ����ܡ����������ǡ����ʹ�ý��������ܵ��½���

�����ļ����ֶ������ֶ����ķ�ʽ�����ģ������ǿ�ѡ��д��һ��Բ��������ı��ʽ�� ���������ʽ֧�ֶ���ֶ���������ô����Ҳ������������ֶΡ�

һ�������ֶο�����һ��ʹ�ñ���е�һ�������ֶε���ֵ���м���ı��ʽ�� �������Կ����ڻ�ȡ�Ի�������ij�ֱ��εĿ��ٷ��ʡ� ���磬һ���� upper(col) �ϵĺ��������������Ӿ� WHERE upper(col) = 'JIM' ʹ��������

PostgreSQL Ϊ�������ṩ B-tree��R-tree��hash��ɢ�У� �� GiST ���������� B-tree ����������һ�� Lehman-Yao �߲��� B-trees ��ʵ �֡�R-tree ���������� Guttman �Ķ��η����㷨ʵ���˱�׼�� R-trees�� hash��ɢ�У����������� Litwin ������ɢ�е�һ��ʵ�֡� �û�Ҳ���Զ��������Լ�����������������������൱���ӡ�

��������� WHERE �Ӿ䣬�򴴽�һ������������ ����������һ��ֻ�������һ���ּ�¼��������ͨ���Ǹñ��б������������ݸ����õIJ��֡� ���磬�������һ����������������˺�δ���˵Ķ����� δ���˵Ķ���ֻռ���һС���ֶ����ⲿ������õIJ��֣� ��ô��Ϳ���ͨ��ֻ��������ִ���һ���������������ܡ� ����һ�����ܵ���;���� WHERE �� UNIQUE ǿ��һ�����ij���Ӽ���Ψһ�ԡ� ���� Section 11.7 ̽�ָ�����Ϣ��

�� WHERE �Ӿ����õı��ʽֻ�������²����ֶΣ�����������ʹ�������ֶΣ����������DZ��������ֶΡ� Ŀǰ���Ӳ�ѯ�;ۼ����ʽҲ���ܳ�����WHERE�

��������������к����Ͳ�������������immutable��������ģ�Ҳ����˵�� ���ǵĽ������ֻ�����������ǵ�����������������������κ��ⲿ��Ӱ�죨��������һ��������ݻ��ߵ�ǰʱ�䣩�� ���Լ��ȷ������������Ϊ�Ƕ��������ġ�Ҫ��һ��������ʹ���û����庯�������ס���㴴������ʱ��������Ϊimmutable�ĺ�����

����

UNIQUE

��ϵͳ��⵱��������ʱ����������Ѿ����ڣ���ÿ���������ʱ�����Ƿ����ظ�ֵ�� ����������µ�ֵ�ᵼ���ظ��ļ�¼ʱ������һ������

name

Ҫ�����������������ﲻ�ܰ���ģʽ���� ����������ͬһ��ģʽ����Ϊ�丸�����ġ�

table

Ҫ�����ı�����������ģʽ���Σ���

method

���������ķ��������֡���ѡ�������� btree�� hash��rtree���� gist��ȱʡ������ btree��

column

�����/�ֶ�����

expression

һ�����ڸñ��һ�������ֶεı��ʽ�� ������ʽͨ���������Բ������Χд�������﷨����ʾ������ ������������ʽ�к������õ���ʽ����ôԲ��������ʡ�ԡ�

opclass

һ�������IJ��������������Ļ�ȡϸ�ڡ�

tablespace

�����������ڵı�ռ䡣���û����������ʹ�� default_tablespace �ı�ռ䣬 ��� default_tablespace �ǿ��ִ�����ʹ�����ݿ��ȱʡ��ռ䡣

predicate

Ϊһ��������������Լ�����ʽ��

ע��

���� Chapter 11 ��ȡ�йغ�ʱʹ����������ʱ��ʹ�������� �Լ�������������������õ���Ϣ��

Ŀǰ��ֻ�� B-tree �� gist ��������֧�ֶ��ֶ������� ȱʡʱ���������� 32 �����֣�������ƿ��������� PostgreSQL ʱ�޸ģ��� Ŀǰֻ�� B-tree ֧��Ψһ������

����Ϊ������ÿ����/�ֶ�����һ�� ���������� ���������ʶ��Ҫ�����������ڸ���/�ֶεIJ������� ���磬 һ�����ֽ������� B-tree ������ʹ�� int4_ops �� �����������������ֽ������ıȽϺ����� ʵ���ϣ�������������͵�ȱʡ��������һ����㹻�ˡ� ijЩ���������в��������ԭ���ǣ����ǿ����ж���һ�����������˳�� ���磬���ǶԸ�����������ʱ�п����Ծ���ֵ������ʵ���� ���ǿ���ͨ��Ϊ���������Ͷ���������������Ȼ���ڽ���������ʱ��ѡ����ʵı���ʵ�֡� �йز�������������Ϣ�� Section 11.6 �� Section 31.14 �

ʹ�� DROP INDEX ɾ��һ��������

ȱʡʱ������������ IS NULL �Ӿ䡣���ֳ�����ʹ����������÷������� IS NULL ν�ʴ���һ������������

����

�ڱ�films�ϵ� title�ֶδ���һ�� B-tree ������

CREATE UNIQUE INDEX title_idx ON films (title);

�ڱ� films ���ֶ� code �ϴ���һ�������� ���������������ڱ�ռ� indexspace�ϣ�

CREATE INDEX code_idx ON films(code) TABLESPACE indexspace;

������

CREATE INDEX �� PostgreSQL ������չ�� �� SQL92 ��û�� CREATE INDEX ���

�ּ�

ALTER INDEX, DROP INDEX