Mysql 为1000';什么是非顺序记录?

Mysql 为1000';什么是非顺序记录?,mysql,Mysql,我有数千条记录需要更新,但它们是非顺序的,并且不遵循任何模式。大概是这样的: 161,177,178,180,181, [...] 9515,9516,9519,9521,9522 UPDATE mytable SET status="3" WHERE indexID = 9161; 假设我想做这样的事情: 161,177,178,180,181, [...] 9515,9516,9519,9521,9522 UPDATE mytable SET status="3" WHERE inde

我有数千条记录需要更新,但它们是非顺序的,并且不遵循任何模式。大概是这样的:

161,177,178,180,181, [...] 9515,9516,9519,9521,9522
UPDATE mytable
SET status="3"
WHERE indexID = 9161;
假设我想做这样的事情:

161,177,178,180,181, [...] 9515,9516,9519,9521,9522
UPDATE mytable
SET status="3"
WHERE indexID = 9161;
然后对上述每一项重复上述步骤。使用一个大的IN可以吗

UPDATE mytable
SET status="3"
WHERE indexID IN (161,177,178,180,181, [...] 9515,9516,9519,9521,9522)
我相信上面提到的“几个”。。。但是有几千人?目前10k大约是我的上限,但这可能会扩大。我认为10万美元永远不会成为现实

我在大约6000台的电视机上试用了一下,效果很好(我想大概用了30秒——我没有计时),所以这对我来说现在不是什么问题,但可能会一直持续下去


有更好的方法吗?

据我所知,只发送了一条命令,而with=则需要数千条命令。因此,我认为在正常情况下,速度会更快。唯一值得怀疑的是:是否能处理10k数字(10-50一次可以处理,但10k我不太确定)。让我们看看答案,但在最坏的情况下,您应该将值收集到10-50个数字块中,并将每个数字块放入in(至少imho)中。当您询问哪个变量更好时,请不要重复,但in语句中的信息仍然很好(特别是在该问题的副本中):您是否尝试过子句中的
中的10k项?据我所知,MySQL可以处理这个问题。注意你可能需要增加@bansi,这也是我发现的。问题是,从我从OP收集的信息来看,它是否比“一个接一个”方法(或在条目块中以50的速度)更快,因为我在问题中读到的in语句(我在注释中加入了注释)及其副本的速度变慢了。OP似乎想找到最合适的方法(也就是我用的最快的方法),我用大约6000个试过,在被它噎住了大约30秒后,它成功了。我想我没事,但我想知道是否有更好的办法。特别是如果我的集合大约有400个字符长。从我收集的信息来看,仍然只有1条命令被发送,而with=则需要数千条命令。因此,我认为在正常情况下,速度会更快。唯一值得怀疑的是:是否能处理10k数字(10-50一次可以处理,但10k我不太确定)。让我们看看答案,但在最坏的情况下,您应该将值收集到10-50个数字块中,并将每个数字块放入in(至少imho)中。当您询问哪个变量更好时,请不要重复,但in语句中的信息仍然很好(特别是在该问题的副本中):您是否尝试过
子句中的
中的10k项?据我所知,MySQL可以处理这个问题。注意你可能需要增加@bansi,这也是我发现的。问题是,从我从OP收集的信息来看,它是否比“一个接一个”方法(或在条目块中以50的速度)更快,因为我在问题中读到的in语句(我在注释中加入了注释)及其副本的速度变慢了。OP似乎想找到最合适的方法(也就是我用的最快的方法),我用大约6000个试过,在被它噎住了大约30秒后,它成功了。我想我没事,但我想知道是否有更好的办法。特别是如果我的电视机有400个字符长。