什么是索引?
索引是表的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录。
索引的性能?
可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,
所以索引不是越多越好。
当表过于少,或者需要频繁的修改表的时候,会降低表的性能。不适合建立索引
索引的创建与分类?
oracle中是
1,普通索引
create index index_num1 on table_name(column);
2,唯一索引
create unique index index_num2 on table_name(column);
唯一索引确保在定义索引的列中没有重复值
3,组合索引
create index index_num3 on table_name(column1,column2);
组合索引是在表的多个列上创建索引,
索引中列的顺序是任意的,在表的多个列上创建的索引
4,反向键索引
create index index_name on table_name(column) reverse;
反向键索引反转索引列键值的每个字节,为了实现索引的均匀分配,
通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上
5,位图索引
create bitmap index index_name on table_name (column_name);
位图索引适合创建在低基数数列上,节省空间
6,基于函数的索引
create index index_name on table_name (函数(column_name));
基于一个或者多个列上的函数或表达式创建的索引
删除索引
drop index index_name;
mysql中的索引
1,普通索引
CREATE INDEX index_name ON table(column(length));
没有任何限制
2,唯一索引
CREATE UNIQUE INDEX indexName ON table(column(length))
索引列的值必须唯一,但允许有空值
3,主键索引
是特殊的唯一索引,一般在建表的时候建立
4,组合索引
CREATE INDEX indexName ON table(column1,column2);
只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。
使用组合索引时遵循最左前缀集合.
5,全文索引
CREATE FULLTEXT INDEX index_content ON article(content);
主要用来查找文本中的关键字