有人知道吗,FK会减少MySQL中的插入/更新操作吗? 我使用引擎INNODB。
答案 0 :(得分:1)
FK是否减少了MySQL中的插入/更新操作?
它不是关于 MySQL ,而是是。在列上创建FK将创建二级索引,因此在DML操作时,这些索引也需要更新,以便具有正确的表统计信息。这样,DB优化器就可以生成正确有效的查询计划
答案 1 :(得分:1)
INDEX
以验证另一个表中是否存在相应的行。写入过程中这是一个较小的性能负担。SELECT ... JOIN
时,某些FK生成的隐式索引可能会起作用。这对某些JOINs
有很大好处,但不需要FK,因为您可以手动添加INDEX
。ON DELETE or UPDATE
,则可能会做更多工作,尤其是CASCADE
。使用CASCADE
加上更多代码可以实现SELECT
的效果 - 但效果不如让CASCADE
完成工作。是否有任何听起来像#34;减少插入/更新操作"?