MySQL/Oracle中,索引和约束的区别在哪里?
天蓬老师
天蓬老师 2017-04-17 14:24:29
[MySQL讨论组]

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

希望了解的人不吝赐教

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
怪我咯

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

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

伊谢尔伦

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

阿神

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号