Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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_Sql View - Fatal编程技术网

Mysql 是否有创建视图的能力

Mysql 是否有创建视图的能力,mysql,sql-view,Mysql,Sql View,假设我有一个表,有一千个或更多的用户。如果我为每个用户创建一个视图,它会影响性能吗 CREATE VIEW vw_userid of user AS SELECT * FROM Updates WHERE userid='userid of user' 我认为在您的情况下,这是有效的,因为第一个查询将读取一个表并生成视图,再次它将执行读取操作以检索数据,并且您正在运行时创建视图,因此每次都将消耗内存。如果I/O请求将更多,那么您的服务器可能会变得无响应。我建议您使用选择语句对您更有利。创建

假设我有一个表,有一千个或更多的用户。如果我为每个用户创建一个视图,它会影响性能吗

CREATE VIEW vw_userid of user AS
SELECT * 
FROM Updates 
WHERE userid='userid of user'

我认为在您的情况下,这是有效的,因为第一个查询将读取一个表并生成视图,再次它将执行读取操作以检索数据,并且您正在运行时创建视图,因此每次都将消耗内存。如果I/O请求将更多,那么您的服务器可能会变得无响应。我建议您使用选择语句对您更有利。

创建视图总是会影响性能(很明显)。是的,确实如此,特别是如果您打算为1000多名用户创建一个视图。我希望为每个用户创建视图。如果我有1000个用户,那么将有1000个视图。当用户注册我的网站时,我将创建视图,然后每当用户登录时,我将使用该视图检索数据。现在有10000个用户登录,您将创建多少视图以及它将如何工作,只要想想这个场景。这里的用户将每天不断增加。哪个主机将为您提供对这么多表的支持。如果您想创建视图,那么只创建一个视图,其中每一行可以有GUID作为主键&使用userid您可以检索数据。好的,这就是我要问的。所以更好的方法是使用选择并删除创建viewYes的想法!它将比为每个用户创建视图更快。