gpt4 book ai didi

MYSQL (NOT IN) 查询很慢

转载 作者:行者123 更新时间:2023-11-29 06:36:42 24 4
gpt4 key购买 nike

我不知道为什么这个查询需要 45 分钟才能给我结果

table1= 831293 行

table2= 2000.000 行

SELECT ID, name FROM table1 WHERE name not IN (SELECT name FROM table2 )  LIMIT 831293

my.cnf 文件看起来像这样:

max_allowed_packet  = 64M
innodb_buffer_pool_size = 8G
innodb_log_file_size = 256M
query_cache_type = 1
query_cache_limit = 1M

最佳答案

你有名字的索引吗?

如果每次都必须在每行中循环遍历 table2,则实际上循环了 831293*200000 行,这是很多。

当你有一个关于名字的索引时,你可以得到一个主要的性能提升,因为在这个索引中搜索一个名字会更容易。 (甚至可能是 O(1),因为可能会有一个哈希表)

您可以按如下方式进行

ALTER TABLE `table2` ADD INDEX (`name`)

关于MYSQL (NOT IN) 查询很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171446/

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