MySQL中的视图或子查询

MySQL中的视图或子查询,mysql,sql,views,Mysql,Sql,Views,用户(用户名,目录ID,子目录ID) 类别(Catogory\u ID,类别名称) 子目录(子目录ID,子目录名称) 在code中是FK及其主键 问题1 我需要的是使用所有这三个表或子查询创建一个视图,以获取Catogory和sub_Catogory名称作为其ID 问题2 在exec中,什么会更快?将所有3个表中的数据汇集在一起的单个查询如下所示: select u.*, c.Categories_Name, s.Sub_Categories_Name from Users as u

用户(用户名,
目录ID
子目录ID

类别
Catogory\u ID
,类别名称)

子目录
子目录ID
,子目录名称)

code
中是FK及其主键

问题1

我需要的是使用所有这三个表或子查询创建一个视图,以获取Catogory和sub_Catogory名称作为其ID

问题2


在exec中,什么会更快?

将所有3个表中的数据汇集在一起的单个查询如下所示:

select u.*, c.Categories_Name, s.Sub_Categories_Name
    from Users as u
    left outer join Categories as c
        on c.Category_ID = u.Category_ID
    left outer join SubCategories as s
        on s.Sub_Category_ID = u.Sub_Category_ID;
这可以做成一个视图,也可以简单地按原样运行。至于性能,物化视图的执行速度可能比每次执行时执行连接的即席查询快。但我不会尝试按照这些思路进行优化,除非您发现性能问题。如果即席查询足够快,不用担心优化它