oracle 大数据量查询问题
TABLE1这个表有3千万条数据(方法一)selectcount(*)fromtable1twheret.standard_codeisnotnulland(substr...
TABLE1 这个表有3千万条数据
(方法一)
select count(*) from table1 t
where t.standard_code is not null
and (substr(t.standard_code,0,4) = '0001'
or substr(t.standard_code,0,4) = '0003') ;
(方法二)
select count(*) from table1 t
where t.standard_code is not null
and (t.standard_code like '0001%'
or t.standard_code like '0003%') ;
那个效率高一点,还有就是索引改怎么建,我之前建了个
substr(t.standard_code,0,4) 发现没有作用,那个大虾来帮帮忙 展开
(方法一)
select count(*) from table1 t
where t.standard_code is not null
and (substr(t.standard_code,0,4) = '0001'
or substr(t.standard_code,0,4) = '0003') ;
(方法二)
select count(*) from table1 t
where t.standard_code is not null
and (t.standard_code like '0001%'
or t.standard_code like '0003%') ;
那个效率高一点,还有就是索引改怎么建,我之前建了个
substr(t.standard_code,0,4) 发现没有作用,那个大虾来帮帮忙 展开
2个回答
展开全部
直接在t.standard_code上创建索引,然后使用方法二,效率会高些。
另外告诉你一下:
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的
假如表没有主键(Primary key), 那么count(1)比count(*)快,
如果有主键的话,那主键作为count的条件时候count(主键)最快
如果你的表只有一个字段的话那count(*)就是最快的
count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计
如果这个表有主键,建议用count(主键)替换count(*)
另外告诉你一下:
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的
假如表没有主键(Primary key), 那么count(1)比count(*)快,
如果有主键的话,那主键作为count的条件时候count(主键)最快
如果你的表只有一个字段的话那count(*)就是最快的
count(*) 跟 count(1) 的结果一样,都包括对NULL的统计,而count(column) 是不包括NULL的统计
如果这个表有主键,建议用count(主键)替换count(*)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询