索引创建之前先创建表中索引需要的ID
postgres=# CREATE TABLE COMPANY(
postgres(#    ID INT PRIMARY KEY     NOT NULL,
postgres(#    NAME           TEXT    NOT NULL,
postgres(#    AGE            INT     NOT NULL,
postgres(#    ADDRESS        CHAR(50),
postgres(#    SALARY         REAL
postgres(# );

postgre建索引方法:

单字段索引:

CREATE INDEX index_name ON company1 (name);

PostgreSQL索引创建方法-LMLPHP

联合索引:

CREATE INDEX index_name ON table_name (field1,field2);

PostgreSQL索引创建方法-LMLPHP

mysql的联合索引的使用,在select里的where条件是要求有序的,比如where field1=100和where field1=100 and field2=1000都可以利用到上面这个组合索引(多条件尽量不要用or,至少用UNION代替OR),但使用where field2=1000或where field2=1000 and field1=100就利用不到索引了。

在postgre里,postgre的查询规则器会自动优化和选择索引,所以,一般情况下,mysql中的后两种情况,也是可以利用到组合索引的。

条件(部分)索引:

CREATE INDEX index_name ON table_name (field1) WHERE field1 > 100;

注意:想要使用条件索引,在使用select语句时,where条件最好加上field>100(最少100)的条件,否则索引很可能利用不到。

https://blog.csdn.net/xh16319/article/details/12181169

09-11 21:58