gpt4 book ai didi

MySQL从每个组中选择最大记录并插入到另一个表中

转载 作者:行者123 更新时间:2023-11-29 07:06:30 26 4
gpt4 key购买 nike

表A中有4列,id、name、create_time和content。

create table A
(
id int primary key,
name varchar(20),
create_time datetime,
content varchar(4000)
);
create table B like A;

我想在同一个name中选择最大create_time条记录,并插入到另一个表B中。

执行sql如下,但是时间消耗 Not Acceptable 。

insert into B
select A.*
from A,
(select name, max(create_time) create_time from B group by name) tmp
where A.name = tmp.name
and A.create_time = tmp.create_time;

一张表有1000W行,10GB,执行sql花费200s。

有什么方法可以更快地完成这项工作,或者更改 MySQL Server 中的哪些参数以加快运行速度。

p:表 A 可以是任何类型、分区表或其他类型。

最佳答案

首先确保 A (name, create_time) 和 B (name, create_time) 上有正确的索引然后尝试使用显式连接和条件

insert into B 
select A.*
from A
inner join (
select name, max(create_time) create_time
from B
group by name) tmp on ( A.name = tmp.name and A.create_time = tmp.create_time)

关于MySQL从每个组中选择最大记录并插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com