sql 语句优化

优化一:

如果我们想要统计一张表共有多少条记录,有很多人很快会想到这条sql语句:

select count(*) from table

 

 

 但是,这样的统计方法 如果遇到 bw 级别的数据量时,会不会很...慢呢?

如果是 bw 级别的数据,我们可以使用如下 sql 语句来统计数目:

select count(1) from table

 这样,数据库在统计过程中,仅仅只会统计第一列有多少条数,结果是我们想要的,而且性能得到了优化。

 

如果是 kw 级别的数据 程序会不会死机了呢?

如果是 kw 级别的数据  还让你统计条数,无非两个情况:

一:你用的不是 pc, 是性能良好的大型机。

二:你的 leader 疯了(呵呵,开个玩笑 (*^__^*) )

 

如果是 kw 级别的数据量,一般在设计数据库的时候,就会为该表配置一张 字典表 设置一个字段 来统计该表的记录条数,或其它行之有效的方法来统计表中的条数,而不会让你用sql语句来统计的。

 

 

优化二:

      在程序开发中(不是直接写sql哦), 通常我们在查询某一条记录是否在数据库中存在,

我们通常会使用这样的sql语句:

select * from table where name=''
或
select id from table where ...

 然后看是否有结果集的出现,来从程序中判断是否有该条记录,但这样写往往是这个程序的方法变得不可复用。

我们将这样的语句改为:

select 1 from var1 where var2 = var3
-- var1  var2   var3  分别从程序方法中传入进来

 这样的话,我们就可以做一个方法,只有三个参数  表名  条件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值