当前位置: 代码迷 >> 数据仓库 >> select count(id)性能差,请
  详细解决方案

select count(id)性能差,请

热度:138   发布时间:2016-05-05 16:06:50.0
select count(id)性能差,请高手指点
表定义:
create table HISLIST
(
  ID INTEGER not null,
  SERVICE_CODE VARCHAR2(14),
  USER_NAME VARCHAR2(30),
  CERTIFICATE_CODE VARCHAR2(20),
  ONLINE_TIME VARCHAR2(21),
  OFFLINE_TIME VARCHAR2(21)
  )
定义的索引:
ID主键
CERTIFICATE_CODE 索引1
ONLINE_TIME 索引2 

表中有1200万记录
第一个查询语句:查询结果4条记录,用时20ms.
select count(id)
  from HISLIST
 where online_time >= '2011-04-13 00:00:00'
  and online_time <= '2011-05-13 12:00:00'
  and certificate_code = '643121198011000555';

第二个查询语句:查询结果40000条记录,用时40000ms.
select count(id)
  from HISLIST
 where online_time >= '2011-04-13 00:00:00'
  and online_time <= '2011-05-13 12:00:00'
  and certificate_code = '643121198011000111';

后将ONLINE_TIME 索引2改为DESC类型的,查询语句如下
 select count(id)
  from HISLIST
  where online_time between '2011-04-13 00:00:00' and '2011-04-14 00:01:00'
  and certificate_code = '643121198011000111';
效果和原来一样,

请大家帮忙分析一下原因,是索引的建的原因,还是SQL写的有问题。


------解决方案--------------------
贴出你的explain select ...结果。和你的show index from HISLIST

一般来说,是你的索引没加到位。
  相关解决方案