2 qq 26946497 qq_26946497 于 2016.03.08 15:11 提问

请问索引和外键什么关系?

在百度上搜到的全都是"有外键没索引"
想知道如果建立了索引,却没有建立外键,那么在链接查询中是什么体现呢?

5个回答

enpterexpress
enpterexpress   Rxr 2016.03.08 15:17
已采纳
caozhy
caozhy   Ds   Rxr 2016.03.08 15:19

外键是用来关联两个表的,索引是用来加速表查询的。

caozhy
caozhy   Ds   Rxr 2016.03.08 15:19

为了优化性能,数据库一般都会对主键创建索引。

tao6229087
tao6229087   2016.03.08 15:45

外键通俗点讲就像门牌号码,人家要找你必须通过门牌号码去找到你住在哪。索引就像地图,上面记载了各种你设定的门牌号码,你能通过索引快速找到你想要的

yuzhilin1
yuzhilin1   2016.03.08 15:59

主键 是唯一的是用来关联表之间的关系的、外键和 索引是优化性能 快速查找的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
主键、外键和索引的区别
主键、外键和索引的区别? 主键外键索引定义:唯一标识一条记录,不能有重复的,不允许为空表的外键是另一表的主键, 外键可以有重复的, 可以是空值该字段没有重复值,但可以有一个空值作用:用来保证数据完整性用来和其他表建立联系用的是提高查询排序的速度个数:主键只能有一个
外键未加索引和加索引的区别(一)
 主要描述外键未加索引和加索引的区别: 首先建相关表:create table dept (dept_id number(2), name varchar2(20));    alter table dept add (constraint pk_dept primary key (dept_id));  --在外键上没有建索引的子表CREATE TABLE emp
再一次强调,ORACLE外键必须加索引
外键加索引是常识,必须牢记。本来不想写这个案例的,但是连续
外键该不该使用索引?
在数据库中,索引的使用非常重要,恰当的使用索引可以提高数据库访问的效率,但是索引的不当使用则会影响性能并占用不必要的存储空间。 在oracle数据库中,是否应该对外键使用索引呢?这可能是很多人都有的疑问,答案是肯定的,即在一般情况下应该对外键使用索引。 不过在弄清这个问题之前首先要明确一个概念,就是“外键”的定义。什么是外键呢?通过下面的解释相信你一定能够弄明白了。 1)候选键:
mysql建立不上外键,sql语句一运行完就会生成一条索引,但是外键却建不上
案例:使用navicat生成外键关联,发现添加不了,只生成了一条索引 分析: 建立外键需要注意几点: 1,必须使用innodb表引擎 2,两个表的字符编码必须一致 3,被引用的typeid,即父表中的typeid必须是主键或者唯一建 满足以上几点,sql如下: -------------------------------- create table father (typei
mysql给创建的外键自动建立索引吗?
答案是肯定的,版本号是5.1,但是貌似听说5.5之后就不会了。 如何查看呢,其实你就查看下这个表中所有的索引列就行了。 下面我们来爱这个的介绍下这几个列是啥意思 table:这个不用说了 No_unique:是否唯一,如果唯一就是0,如果可以重复就是1 key_name:索引名字,可以看出来所帮我们自动创建的索引的名字就是那个列 Seq_in_index:索引中的列数,比如联合
外键上建立索引的好处
外键上建立索引的好处   在主从表设计中,常常使用外键在这两个表之间建立关联。当从主表中删除一行数据时,SQL Server便会检查从表中是否有相同外键的行存在。如果从表没有包含外键列的索引,SQL SERVER需要扫描整个从表。可以想象:从表越大,删除的时间越长。更新主表时的情况也是一样。   INSERT DELETE UPDATE
查看未创建索引的外键
select a.constraint_name,        a.table_name,        b.column_name,        nvl(c.COLUMN_NAME, '***no index***')   from user_constraints a   join user_cons_columns b     on a.constraint_name = b
浅谈数据库主键和外键及索引
1、主键: 若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。 2、外键: 外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。 3、索引: 索引是对表中一个或多个列的值进行排
外键要建立索引的原理和实验
项目中,我们要求凡是有主子关系的表都要使用外键约束,来保证主子表之间关系的正确,不推荐由应用自己控制这种关系。但发现有时开发人员提交SQL语句时未必会注意外键列需要定义索引,或者不清楚为什么外键列需要建立索引,网上一些所谓的“宝典”也会将外键列建索引作为其中的一条,包括TOM大师,曾说过: 导致死锁的头号原因是外键未加索引(第二号原因是表上的位图索引遭到并发更新)。在以下两种情况下,Oracle