gpt4 book ai didi

mysql - 快速检查大型 SQL 表中重复项的方法

转载 作者:行者123 更新时间:2023-11-29 10:25:19 24 4
gpt4 key购买 nike

我有一个包含超过 200,000 行的大表,在插入新行之前,我只需要检查最后几千行是否有重复项(不是全部)。目前,我正在为要添加的每一行运行此查询:

SELECT ID from table where date='' and time=''

并且根据该查询的响应,如果响应为空,我会写入该行。

我这样做的问题是它需要很长时间,并且随着数据库的增长,这只会增加所需的时间。

我尝试使用LIMIT和OFFSET,通过说SELECT ID from table where date='' and time='' limit 200000,18446744073709551615我认为只会搜索200,000 行之后到数据库末尾,但是运行此查询似乎并没有更快。

我的问题是:是否有一种更有效的方法可以在数据库中“跳过”并仅搜索部分行而不是所有行?

最佳答案

您应该使用INSERT IGNORE,并根据应该唯一的列对表使用 UNIQUE 约束。

当使用INSERT IGNORE时,MySQL会自动检测该行是否唯一,并忽略数据库中的条目。请参阅this question了解更多信息。

此外,只要表上有正确的索引,搜索数百万行数据库应该很快。您不需要搜索数据子集(如果没有键,数据库将被迫进行行扫描,这可能会导致您所说的延迟)。

关于mysql - 快速检查大型 SQL 表中重复项的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48425993/

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