索引是用于加速从数据库检索数据的特殊查找表。
特点
索引使用SELECT查询和WHERE子句加速数据输出,但是会减慢使用INSERT和UPDATE语句输入的数据。
可以创建一个唯一索引,类似于唯一约束,该索引防止列或列的组合上有一个索引重复的项.
几种索引类型,如B-tree,Hash,GiST,SP-GiST和GIN等。每种索引类型根据不同的查询使用不同的算法。 默认情况下,CREATE INDEX命令使用B树索引。
单列索引
仅在一个表列中创建索引,则将其称为单列索引
CREATE INDEX index_name
ON table_name (column_name);
举例
create index index_company_name
on efu.company(name);
在该表上创建了一个名为“index_company_name”的索引
如果通过使用表的多个列创建索引,则称为多列索引
CREATE INDEX index_name
ON table_name (column1_name, column2_name);
创建唯一索引
唯一索引以获取数据的完整性并提高性能。它不允许向表中插入重复的值,或者在原来表中有相同记录的列上也不能创建索引。
create unique index un_comany_name
on efu.company(name);
删除索引
DROP INDEX efu.index_company_name;
哪些情况下避免使用索引
1,小表上==>避免使用索引
2,具有频繁,大批量更新或插入操作的表==>避免使用索引
3,包含大量NULL值的列==>避免使用索引
4,经常操作(修改)的列==>避免使用索引