Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我可以替换此代码以在operator中使用吗?_Mysql_Sql - Fatal编程技术网

Mysql 我可以替换此代码以在operator中使用吗?

Mysql 我可以替换此代码以在operator中使用吗?,mysql,sql,Mysql,Sql,我们的代码使用create/drop表,同时在数据库中生成VR4队列订单 当网站数量少于250个时,代码将在操作员中使用并生成报告ce.website\u id in(“((join)”,“,@{$website\u id})。” 当我们有250多个网站时,我们的代码就是创建表(名称类似于Temp_tablename),并使用表连接而不是IN操作符。我可以替换此代码以在operator中使用吗?如果IN运算符与更多输入值一起使用,是否会出现性能问题?如Stan所述,使用临时表而不是大型IN是首选

我们的代码使用create/drop表,同时在数据库中生成VR4队列订单

当网站数量少于250个时,代码将在操作员中使用并生成报告
ce.website\u id in(“((join)”,“,@{$website\u id})。”


当我们有250多个网站时,我们的代码就是创建表(名称类似于Temp_tablename),并使用表连接而不是IN操作符。我可以替换此代码以在operator中使用吗?如果IN运算符与更多输入值一起使用,是否会出现性能问题?

如Stan所述,使用临时表而不是大型IN是首选方法

当MySQL从用户那里获得一个大数据块时,它会将其存储在一个临时表中,并使用连接来查看它。对于MySQL来说,这比在SQL部分的中实际查找每个值更容易

您可以跳过此临时表,方法是首先将网站列表存储在表中:

REPLACE INTO tblWebSitesToHandle
(Session_ID, WebSite)
VALUES
('**unique_number**', '**website_id**'), 
('**unique_number**', '**website_id**'), ...
其中,unique\u number将是您选择的某个数字,然后在查询结束后丢弃,但它将帮助您管理要为查询处理的网站列表

然后,在您当前使用的SQL中,而不是(…)中的中,您将对该表执行联接,并从中选择相关的会话ID记录


完成后,只需从tblwebsite中删除会话ID数据即可处理Session\u ID数据,它不再需要(我相信)。

这可能很有趣:尽管其他人提供了智能响应,但我仍会忍不住“吸一吸,看看”。我猜表演不会受到太大影响!