gpt4 book ai didi

mysql where id = 与 where id IN() 之间的性能差异

转载 作者:行者123 更新时间:2023-11-29 12:19:43 26 4
gpt4 key购买 nike

我对 mysql 很陌生。我有一个查询,从这个查询中我得到了一些 stock_ids。在第二个查询中我需要传递这些 stock_ids。为此,我正在获取数组中的所有 stock_ids。现在我的问题是我可以通过哪种方式将这些 stock_ids 传递给第二个查询。为此我有两种方法。

First approach:
$array_cnt = count($stockid_array);
for($i = 0; $i<$array_cnt;$i++)
{
$sql = "select reciever_id,sender_identifier,unique_stock_id,vat_number,tax_number from stocktable where stock_id = '".$stockid_array[$i]."'";
// my while loop
}
Another approach is

$sql = "reciever_id,sender_identifier,unique_stock_id,vat_number,tax_number from stocktable where stock_id in ('1','2','3','4','5','6','7','8','9');
//while loop comes here.

那么哪种方法可以提供良好的性能?请指导我。

最佳答案

MySQL 对 in 列表中的常量进行了很好的优化——它基本上对值进行排序并使用二分搜索。这意味着 in 将会更快。此外,in 可以利用列上的索引。

此外,运行单个查询应该比运行多个查询更快。

因此,in 版本应该比使用 = 运行多个查询更好。

关于mysql where id = 与 where id IN() 之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29209549/

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