Mysql-使用大型相互依赖表(联接表)插入更新的最快方式
我有两张桌子 表1: 包含列Mysql-使用大型相互依赖表(联接表)插入更新的最快方式,mysql,join,optimization,insert,rdbms,Mysql,Join,Optimization,Insert,Rdbms,我有两张桌子 表1: 包含列 id、姓名、电子邮件 注意:列电子邮件具有唯一的约束 表2: 包含列 id,表1\u id,地址 我有一个额外的csv文件,其中包含两个表的记录,即姓名、电子邮件和地址,我想在以下情况下将这些csv行插入并更新到表1和表2中: 场景1-表1中不存在电子邮件在表1和表2中插入记录 场景2-如果电子邮件id已经存在,则不应影响表1中的,但表2的地址列应得到更新 在MySQL中,编写查询以实现这一点的最快、最有效的方法是什么。将CSV加载到其中。更新两个表的数据(将忽
id、姓名、电子邮件
注意:列电子邮件具有唯一的约束
表2: 包含列
id,表1\u id,地址
我有一个额外的csv文件,其中包含两个表的记录,即姓名、电子邮件和地址,我想在以下情况下将这些csv行插入并更新到表1和表2中:
场景1-表1中不存在电子邮件在表1和表2中插入记录场景2-如果电子邮件id已经存在,则不应影响表1中的,但表2的地址列应得到更新
在MySQL中,编写查询以实现这一点的最快、最有效的方法是什么。将CSV加载到其中。更新两个表的数据(
将忽略插入表1
和替换到表2
)。DDL+3 DML查询总数。@Akina谢谢。表1和表2都是大表。考虑到我的场景,您能在两个表中指定最快的insert或update查询吗explained@Akina如何直接写入替换表2,因为电子邮件id列仅存在于表1中最后一个查询的数据源将更新表2
将由两个表组成-临时源表和表1
合并通过电子邮件
@Akina您是否可以建议其他方式,而不考虑任何额外的表格