首页 > MySQL/Oracle中,索引和约束的区别在哪里?

MySQL/Oracle中,索引和约束的区别在哪里?

拿MySQL举例
在MySQL中创建唯一约束就自动获取唯一索引,
创建唯一索引也会有唯一约束的功能。
那么索引和约束的区别到底在哪呢?
仅仅是出发点不同吗?(索引维护表的查找与操作速度,约束维护表的完整性)

希望了解的人不吝赐教


“创建唯一约束就自动获取唯一索引”是因为数据库认为对数据库进行唯一检查时,如果该字段上有索引会很快,所以建唯一约束就默认创建唯一索引,maybe唯一约束的底层代码需要唯一索引。
但对于not null/枚举 这样的约束,数据库是不会创建索引的


本身是两个不同的概念,约束是用来限制一些东西。而索引是用来增加查询效率。


索引是面向数据库本身的,用于查询优化等操作
约束则更多的是业务上的关系,包括唯一性、外键约束等
两者之间没啥太大的关系吧

能联系两者的常见的比如主键,主键是个索引,同时满足唯一性的约束

【热门文章】
【热门文章】