mysql 新建子查询_Mysql创建SQL子查询ALIAS

通常这些被称为视图.例如:

CREATE VIEW vMyLongQuery

AS

SELECT a, b, c FROM (LONG QUERY) X WHERE ...

然后可以像这样引用:

SELECT a, b, c FROM vMyLongQuery

就性能而言,最佳案例性能将与您现在正在做的完全相同,最坏的情况是它会扼杀您的应用程序.这取决于你对视图的处理方式以及MySQL如何处理它们.

MySQL实现了两种方式合并和temptable的视图.合并选项几乎就是您现在正在执行的操作,您的视图将作为子查询合并到您的查询中.使用temptable它实际上将所有数据假脱机到temptable然后选择/ join到那个temptable.当数据连接到temptable时,您也会失去索引优势.

作为抬头,合并查询计划不支持视图中的以下任何内容.

>聚合函数(SUM(),MIN(),MAX(),COUNT()等)

> DISTINCT

> GROUP BY

> HAVING

>限制

> UNION或UNION ALL

>选择列表中的子查询

>引用没有基础表的文字

因此,如果您的子查询使用这些,则可能会损害性能.

另外,仔细注意OMG小马的建议,观点与基类不同.视图在数据库中占有一席之地但很容易被滥用.当工程师从OO背景进入数据库时??,视图似乎是一种促进代码继承和可重用性的便捷方式.通常人们最终会发现自己处于嵌套视图的位置,这些视图连接到嵌套视图的嵌套视图. SQL通过基本上获取每个单独视图的定义并将其扩展为将使DBA哭泣的查询的野兽来处理嵌套视图.

此外,您在示例中遵循了优秀的做法,我鼓励您继续这样做.您单独指定了所有列,从未使用SELECT *指定视图的结果.它最终会破坏你的一天.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值