InnoDB 中foreign key使用注意事項

2021-09-21 16:05:28 字數 771 閱讀 2389

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 的錯誤。

MySql中InnoDB引擎索引

mysql中innodb引擎的索引分兩類,一類是一級索引 主鍵的同義詞 一類是二級索引 非主鍵的索引 兩類索引都使用b tree形式組織,但一級索引的葉子節點包含所以對應的整行資訊,所有的查詢最終都是通過一級索引完成,二級索引只包含二級索引對應的一級索引。所以直接使用一級索引比用二級索引快,因為少了...

MYSQL中InnoDB是什麼

innodb的特色在於支援併發與表間引用 mysql支援多種儲存引擎,使用者可以方便的選用不同的儲存引擎來支援自己的應用,每種不同的儲存引擎都有其自己的特性 innodb是其中的一種儲存引擎,它的特性是支援事務,並且採用多版本併發控制的方式來提高併發度主要是事務表,當乙個事務全部完成,才會執行upd...

mysql中InnoDB中的各種鎖

一種分類方式 行鎖 索引上鎖 表鎖 表上鎖 一種分類方式 共享鎖 以及獲取前先獲取意向共享鎖 lock in share model 排它鎖 以及獲取前先獲取意向排它鎖 for update 一種分類方式 該分類前提 命中索引 記錄鎖 單條行鎖 間隙鎖 無記錄時候的臨鍵鎖退化為間隙鎖 臨鍵鎖 查詢範...