作用
提升表连接以及查询速度,主要有HASH和B+TREE
索引能提升查询性能,但是会提升数据库体积,特别是数据量大的时候,所以要根据实际情况分析添加索引
区别
如果是等值查询,那么哈希索引明显有绝对优势,用于连表查询关联字段,和等值查询
但是如果有范围查询的字段那么使用B+TREE
主键
主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键
外键
规范化为重的时候是一定要添加外键的,例如hibernate,金融项目,因为有设计经验丰富的人设计程序
当需求变化大的时候可以先不要添加外键,等稳定下来之后再设置外键,但是设计阶段为了保证数据完整性,必须保证事务完整性以免出现垃圾数据