gpt4 book ai didi

mysql - 删除查询在 Google Cloud MySQL 中运行时间较长

转载 作者:行者123 更新时间:2023-11-29 06:33:28 25 4
gpt4 key购买 nike

我在 Google Cloud 的 MySql 数据库中有一个包含 433,332 条记录的表。表格看起来像这样

Album_ID | Track_Len | Track_Name                            | Ft_LName1 | Ft_FName1 | Ft_LName2 | Ft_FName2 | Ft_LName3 | Ft_FName3 | Row_Num |
+---------+-----------+---------------------------------------+-----------+-----------+-----------+-----------+-----------+-----------+---------+
| N40781 | 5.19 | Tumbala (Da Lata Remix) | NULL | Novalima | NULL | NULL | NULL | NULL | 1 |
| N40781 | 5.01 | Ruperta (Zeb Remix) | NULL | Novalima | NULL | NULL | NULL | NULL | 2 |
| N40781 | 6.35 | Coba Guarango (Toni Economides Remix) | NULL | Novalima | NULL | NULL | NULL | NULL | 3 |
| B15033 | 6.02 | II-V-P | Quartet | ARC | NULL | NULL | NULL | NULL | 4 |
| N32395 | 4.47 | My Babe | Stigers | Curtis | NULL | NULL | NULL | NULL | 5 |
| N32395 | 5.13 | Thats All Right | Stigers | Curtis | NULL | NULL | NULL | NULL | 6 |

请注意,该表的主键应该是(Album_ID,Track_Name)我知道表中存在重复的数据条目。我尝试运行以下查询来查找并删除这些条目:

select count(*) 
from Track t1, Track t2
where t1.Album_ID = t2.Album_ID
AND t1.Track_Name = t2.Track_Name
AND t1.Row_Num > t2.Row_Num;

但是,这需要很长时间才能运行。谁能建议一种更有效的方法来做到这一点?

最佳答案

要获取重复项列表,我建议:

select Album_ID, Track_Name, count(*) 
from Track t
group by Album_ID, Track_Name,
having count(*) > 1

如果你想要计数,那么:

select count(*) as num_keys_with_duplicates,
sum(cnt - 1) as num_duplicates
from (select Album_ID, Track_Name, count(*) as cnt
from Track t
group by Album_ID, Track_Name,
having count(*) > 1
) x;

关于mysql - 删除查询在 Google Cloud MySQL 中运行时间较长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55079574/

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