索引创建之前先创建表中索引需要的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);
联合索引:
CREATE INDEX index_name ON table_name (field1,field2);
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