Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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/sql中的表_Mysql_Optimization - Fatal编程技术网

多行“;“双重”;mysql/sql中的表

多行“;“双重”;mysql/sql中的表,mysql,optimization,Mysql,Optimization,这是“dual”表概念的扩展(为一个查询动态创建临时表,然后立即丢弃) 我正在尝试将一个多行dual表与另一个表连接起来,以避免使用1语句使用不同的参数多次运行同一查询 我遇到的一个问题是,双表的联合速度非常慢,我不知道有什么更有效的方法来完成以下任务。(将50个双通道连接在一起时为100 ms) 有没有其他方法可以实现这个目标 是否有任何类似于insert into values语句的语法可以实现该目标,例如: SELECT unid, id FROM ( WI

这是“dual”表概念的扩展(为一个查询动态创建临时表,然后立即丢弃)

我正在尝试将一个多行
dual
表与另一个表连接起来,以避免使用1语句使用不同的参数多次运行同一查询

我遇到的一个问题是,双表的联合速度非常慢,我不知道有什么更有效的方法来完成以下任务。(将50个双通道连接在一起时为100 ms)

有没有其他方法可以实现这个目标

是否有任何类似于insert into values语句的语法可以实现该目标,例如:

SELECT
  unid,
  id
  FROM
    (
      WITH (unid, date) USING VALUES
      (
        ('b8518a84-c501-11dd-b0b6-001d7dc91168','2010-01-05'),
        ('b853a1f2-c501-11dd-b0b6-001d7dc91168','2010-01-06'), 
        ('b8557bd0-c501-11dd-b0b6-001d7dc91168','2010-01-07'),
         /* ... */
      )
    ) as a
  join other_table b
      ON
      b.ref_unid = a.unid

我正在寻找一种一对一的解决方案。不可能多次访问数据库。

据我所知,MySQL中没有其他约定可以在一条语句中构造派生表。如果处理的是单个列,则在~50个值时,可以将其转换为在子句中使用


性能最好的方法是将数据加载到一个或多个表单的表中——在MySQL中,为了临时使用,我建议使用内存引擎。对于大约50个元组,我想知道为什么数据库中没有数据…

我编写的API允许传递元组列表并返回每个元组的对象列表。由于传入的元组数通常在10-50左右,因此我试图避免调用一个查询50次,只需更改几个参数。我尝试使用multiple-IN语句,但它不使用任何现有的索引,这与上面的方法不同,除了双表的并集之外,这种方法速度非常快。
SELECT
  unid,
  id
  FROM
    (
      WITH (unid, date) USING VALUES
      (
        ('b8518a84-c501-11dd-b0b6-001d7dc91168','2010-01-05'),
        ('b853a1f2-c501-11dd-b0b6-001d7dc91168','2010-01-06'), 
        ('b8557bd0-c501-11dd-b0b6-001d7dc91168','2010-01-07'),
         /* ... */
      )
    ) as a
  join other_table b
      ON
      b.ref_unid = a.unid