数据库索引

索引


关系型数据库中提升查询性能最为重要的手段.
像是书本中的目录,虽然占用了一些纸张(存储),但换来更加快速的查询.
数据库中的列被索引也提高了查询效率.以空间换取时间的查询时间的减少.


Mysql


Mysql的InnoDB支持每个表创建16个索引,底层使用的数据结构是B-tree(多路搜索树,并不是二叉的),平衡树的一种.


索引操作


创建索引/前缀索引

create index idx_name on table_name(col_name);
create index idx_name on table_name(col_name(N));

删除索引

alter table table_name drop index idx_name;
drop index idx_name on table_name;

索引设计原则

  • 最适合索引的列是出现在where子句和连接子句的列
  • 索引列基数越大,索引的效果就越好
  • 使用前缀索引可以减少索引占用
  • 索引不是越多越好,加速了读操作,但是写操作都是会变慢,因为数据变化会导致索引的更新
  • 使用InnoDB存储引擎时,表的普通索引都会保存主键的值

你可能感兴趣的:(数据库索引)