首页 >

mysql视图多查询,SQL中with的用法 – 数据库 – 前端,mysql5.7连接jdbc

mysql 5.7配置,mysql汉字占varchar,mysql添加用户的hosts,mysql在java中使用,mysql user 1142,mysql5.7连接jdbcmysql视图多查询,SQL中with的用法 - 数据库 - 前端,mysql5.7连接jdbc

第一,易用性。

第二,效率。

举例一 WITH表达式的易用性

大家第一个例子, 对比视图的检索和WITH的检索。大家知道视图在MySQL里面的效率一直较差,虽说MySQL5.7 对视图做了相关固化的优化,不过依然不尽人意。考虑下,如果多次在同一条SQL中访问视图,那么则会多次固化视图,势必增加相应的资源消耗。MySQL里之前对这种消耗的减少只有一种,就是动态处理,不过一直语法较为恶心,使用不是很广。MySQL8.0后,又有了一种减少消耗的方式,就是WITH表达式。大家假设以下表结构:

有1000行测试记录。这里大家建立一个普通的视图:

检索语句A:对视图里的最大和最小值字段rank1进行过滤检索出符合条件的记录行数。大家用WITH表达式来重写一遍这个查询。查询语句B:

功能性演示, 索引表面上看执行时间差不多, 大家来对比下两条实现语句的查询计划,

A的计划:

B的计划:

从以上图大家可以看出,B比A少了一次对视图的固化,也就是说,不管偶访问WITH多少次,仅仅固化一次。有兴趣的可以加大数据量,加大并发测试下性能。

举例二 WITH表达式的功能性

大家第二个例子,简单说功能性。

比如之前MySQL一直存在的一个问题,就是临时表不能打开多次。大家以前只有一种解决办法就是把临时表固化到磁盘,像访问普通表那样访问临时表。现在大家可以用MySQL8.0自带的WITH表达式来做这样的业务。

比如以下临时表:大家还是用之前的查询,这里会提示错误。现在大家可以用WITH来改变这种思路当然WITH的用法还有很多,感兴趣的可以去看看手册上的更深入的内容。


mysql视图多查询,SQL中with的用法 - 数据库 - 前端,mysql5.7连接jdbc
  • SQL中with的用法 - 数据库 - 前端|
  • SQL中with的用法 - 数据库 - 前端| | SQL中with的用法 - 数据库 - 前端| ...

    mysql视图多查询,SQL中with的用法 - 数据库 - 前端,mysql5.7连接jdbc
  • Access2021数据库的基本功能 - 数据库 - 前端|
  • Access2021数据库的基本功能 - 数据库 - 前端| | Access2021数据库的基本功能 - 数据库 - 前端| ...

    mysql视图多查询,SQL中with的用法 - 数据库 - 前端,mysql5.7连接jdbc
  • mysql怎么查询结果,mysql子节点查询父节点 - 数据库 - 前端,mysql没有设置口令
  • mysql怎么查询结果,mysql子节点查询父节点 - 数据库 - 前端,mysql没有设置口令 | mysql怎么查询结果,mysql子节点查询父节点 - 数据库 - 前端,mysql没有设置口令 ...