在oracle生产库中,我的一个表的数据有10亿行记录,怎么快速计算有多少行,不要告诉我用count(*)之类的答案

在oracle生产库中,我的一个表的数据有10亿行记录,怎么快速计算有多少行,不要告诉我用count(*)之类的答案,第1张

你的这个表有主键没?

如果有主键,假设你的这个表的主键是sid

那么可以使用

select count(sid) from tablename

来查询会比你用count(*) 要快的多。使用主键字段会用到主键索引,会比你去扫描整个表要快的多。

oracle 里面统计某个表的数据行的数量只有使用count函数来求。如果数据量非常大你应该考虑把你的历史数据给清理掉或者使用分区表 。

查询前十条记录(顺数)select top 10 * form 表 where ..." '也可以不要后面的where子句

查询后十条记录(倒数)select top 10 * form 表 where ... order by id desc"'注:ID是数据库自动编号

10亿级别的什么数据?

如果是 关系型很强,而且数据很值钱的数据, 例如 顾客--交易--商品--金额 一个系列的, 那么这种很重要的数据,建议是 Oracle, 因为 数据丢不起啊。

如果是 关系型强, 但是数据不是很值钱的数据, 例如 A股 从开市以来, 所有股票的 每日,每小时,30分,15分,5分 钟的行情数据。 那么你可以使用 Mysql。 反正丢了就重新导入一次。

如果是 关系型不强, 数据也不是很值钱的数据, 例如 论坛的帖子 这一类的, 那么用 mongodb 就更合适一些。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10017822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存