数据库创建索引

首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。

如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。

主键

唯一索引

外键

外键会自动建立索引

创建索引(EF)

1
2
3
4
5
6
7
8
9
// 唯一索引 
mb.Entity<model>().HasIndex(e => e.xxx).IsUnique();
// 组合唯一索引
mb.Entity<model>().HasIndex(e => new { e.xxxa, e.xxxb }).IsUnique();

// 单个索引
mb.Entity<model>().HasIndex(e => e.xxx);
// 组合索引
mb.Entity<model>().HasIndex(e => new { e.xxxa, e.xxxb });

优劣

  • 索引会加快字段的查询速度
  • 索引会减慢数据更新速度