InnoDB 中foreign key使用注意事项

简介:
Innodb foreign key 和 sql  standards的区别:

在 sel statement 中的inserts,deletes,updates 很多行的时候,fk 会一行一行检查。 innodb
是设置 shared row_level locks 在父表或者子表上,MySQL CHECK 会立即检查是否有符合的行,
并不会推迟到事务提交的时候,

在innodb上建立fk的条件:
1、innodb允许关联到一个index或者一组 columns(第一个column 必须是index)
2、innodb不支持在用户自定义的分区表上建立fk
3、innodb允许fk关联到一个non-unique key .

关联的所涉及到的动作:
1、set default MySQL SERVER 支持,但Innodb不支持。
2、如果子表中对应父表的多条记录,如果constraint type 为restrict,那么innodb是不允许删除
   父表当中的这几条记录的。
3、innodb进行级联操作时,使用depth-first 算法,通过行记录的索引进行查找
4、ON UPDATE CASCADE or ON UPDATE SET NULL 不能进行self-referential

可以在 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 中查看 innodb key的具体情况。也可以通过show
 engine innodb status 来 进行查看 fk 的错误。





本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1173383,如需转载请自行联系原作者
目录
相关文章
|
存储 关系型数据库 MySQL
6.2.3 【MySQL】InnoDB的B+树索引的注意事项
6.2.3 【MySQL】InnoDB的B+树索引的注意事项
106 0
|
存储 关系型数据库 MySQL
【MySQL从入门到精通】【高级篇】(九)InnoDB的B+树索引的注意事项
上一篇文章我们介绍了聚簇索引,非聚簇索引以及联合索引【MySQL从入门到精通】【高级篇】(八)聚簇索引&非聚簇索引&联合索引。我们在介绍B+树索引的时候,是先把存储用户记录的叶子节点都画出来,然后接着画存储目录记录的内节点,实际上B+树的形成过程不是这样的
167 0
【MySQL从入门到精通】【高级篇】(九)InnoDB的B+树索引的注意事项
|
存储 关系型数据库 MySQL
【Mysql】InnoDB 中 B+ 树索引的注意事项
【Mysql】InnoDB 中 B+ 树索引的注意事项
【Mysql】InnoDB 中 B+ 树索引的注意事项
|
存储 关系型数据库 MySQL
每日一面 - 从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?
每日一面 - 从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?
每日一面 - 从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?
|
存储 MySQL 关系型数据库
MYSQL INNODB replace into 死锁 及 next key lock 浅析
原创:全文带入了大量自我认知和理解,可能错误,因为水平有限,但是代表我努力分析过。一、问题提出问题是由姜大师提出的、问题如下:表:mysql> show create table c \G*************************** 1.
3031 0
|
关系型数据库 索引 MySQL
如何证明INNODB辅助索引叶子结点KEY值相同的按照PRIMARY KEY排序
接http://blog.itpub.net/7728585/viewspace-2126305/  RR模式下NEXT-KEY LOCK范围到底有多大   证明观点: 1、对辅助索引的页中链表进行分析,如果在辅助索引页内的链表按照首先是KEY排序然后KEY相...
898 0
|
SQL 关系型数据库 索引
|
1月前
|
存储 SQL 关系型数据库
MySQL底层概述—2.InnoDB磁盘结构
InnoDB磁盘结构主要包括表空间(Tablespaces)、数据字典(Data Dictionary)、双写缓冲区(Double Write Buffer)、重做日志(redo log)和撤销日志(undo log)。其中,表空间分为系统、独立、通用、Undo及临时表空间,分别用于存储不同类型的数据。数据字典从MySQL 8.0起不再依赖.frm文件,转而使用InnoDB引擎存储,支持事务原子性DDL操作。
224 100
MySQL底层概述—2.InnoDB磁盘结构
|
1月前
|
缓存 算法 关系型数据库
MySQL底层概述—1.InnoDB内存结构
本文介绍了InnoDB引擎的关键组件和机制,包括引擎架构、Buffer Pool、Page管理机制、Change Buffer、Log Buffer及Adaptive Hash Index。
235 97
MySQL底层概述—1.InnoDB内存结构
|
27天前
|
SQL 关系型数据库 MySQL
MySQL底层概述—10.InnoDB锁机制
本文介绍了:锁概述、锁分类、全局锁实战、表级锁(偏读)实战、行级锁升级表级锁实战、间隙锁实战、临键锁实战、幻读演示和解决、行级锁(偏写)优化建议、乐观锁实战、行锁原理分析、死锁与解决方案
MySQL底层概述—10.InnoDB锁机制