Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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视图的运行时间比查询长_Mysql - Fatal编程技术网

MySQL视图的运行时间比查询长

MySQL视图的运行时间比查询长,mysql,Mysql,下面的查询大约在2秒钟内运行,但在我将其转换为视图时超时。如何使其作为视图运行得更快 此表中约有61K行 select f.fid-1 as fid, balance - (select balance from fights prev where prev.fid < f.fid order by fid desc limit 1) as changes from fights f order by fid desc; 与其他RDBMS不同,据我所知,视图在MySQL中几乎没有任何用处

下面的查询大约在2秒钟内运行,但在我将其转换为视图时超时。如何使其作为视图运行得更快

此表中约有61K行

select f.fid-1 as fid,
balance - (select balance from fights prev where prev.fid < f.fid order by fid desc limit 1) as changes
from fights f
order by fid desc;

与其他RDBMS不同,据我所知,视图在MySQL中几乎没有任何用处。那么,为什么不干脆放弃这个观点呢?我想用这个信息进行其他查询。我还希望能够永久存储查询,而不会有关闭查询的风险;MySQL视图目前无法使用索引。我不明白另一点——如果您真的想,可以将查询作为字符串存储在表中!谢谢你提供的信息。我不是一个程序员,我只是一个技术娴熟的程序员。有了正确的DDL,我想这里有人可以告诉你一个更好的方法来编写这个查询。要将其另存为视图,显然只需在其开头添加单词createview。但是,针对该视图运行的任何查询都不太可能运行得特别好。与其他RDBMS不同,据我所知,视图在MySQL中几乎没有任何用处。那么,为什么不干脆放弃这个观点呢?我想用这个信息进行其他查询。我还希望能够永久存储查询,而不会有关闭查询的风险;MySQL视图目前无法使用索引。我不明白另一点——如果您真的想,可以将查询作为字符串存储在表中!谢谢你提供的信息。我不是一个程序员,我只是一个技术娴熟的程序员。有了正确的DDL,我想这里有人可以告诉你一个更好的方法来编写这个查询。要将其另存为视图,显然只需在其开头添加单词createview。但是,针对该视图运行的任何查询都不太可能运行得特别好。