专栏首页cwl_Java性能优化-慢查询的优化案例

性能优化-慢查询的优化案例

3、慢查询的优化案例

1、函数Max()的优化

用途:查询最后支付时间-优化max()函数 语句:

select max(payment_date) from payment;

执行计划:

explain select max(payment_date) from payment;

可以看到显示的执行计划,并不是很高效,可以拖慢服务器的效率,如何优化了? 创建索引

create index inx_paydate on payment(payment_date);

索引是顺序操作的,不需要扫描表,执行效率就会比较恒定,

2、函数Count()的优化

需求:在一条SQL中同时查处2006年和2007年电影的数量

错误的方式: 语句:

select count(release_year='2006' or release_year='2007') from film;

2006和2007年分别是多少,判断不出来

 select count(*) from film where release_year='2006' or release_year='2007';

正确的编写方式:

select count(release_year='2006' or null) as '06films',count(release_year='2007' or null) as '07films' from film;

区别:count(*)和count(id) 创建表并插入语句

 create table t(id int);
 
 insert into t values(1),(2),(null);
Count(*):select count(*)from t;
Count(id):select count(id)from t;

说明: Count(id)是不包含null的值 Count(*)是包含null的值

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 经典笔试题-数据库及SQL篇

    106、有3 个表(15 分钟):【基础】 Student 学生表(学号,姓名,性别,年龄,组织部门) Course 课程表(编号,课程名称) Sc 选课...

    cwl_java
  • JDK1.9-属性集

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • 大数据-Hive查询语法

    因此,如果分桶和sort字段是同一个时,此时, cluster by = distribute by + sort by 分桶表的作用:最大的作用是用来提高j...

    cwl_java
  • sql查询语句

    select sal*12 as "年工资" , age 年龄,name username from 表名;

    HUC思梦
  • [Oracle数据库日常操作]与系统进程相关的一些命令

    bsbforever
  • Oracle查询第m到第n条数据

    这种方法是最优方法,因为该方法进行排序后取值,所以能够保证两次取值都会取出相同的值。

    SuperHeroes
  • MySQL 开发实践 8 问,你能 hold 住几个?

    最近研发的项目对 DB 依赖比较重,梳理了这段时间使用 MySQL 遇到的8个比较具有代表性的问题。

    王昂
  • SQL | 数据分析面试必备SQL语句+语法

    前些天在网上冲浪的时候看到一个案例咨询,问说世界500强的数据分析要不要去,评论区一片爆炸:“楼主能分享一下文科生怎么转行做数据分析吗??”、“SQL、pyth...

    咸鱼学Python
  • 数据库ORA-03113排查

    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64...

    孙杰
  • 数据库相关

    代码改变世界-coding

扫码关注云+社区

领取腾讯云代金券