当前位置: 首页 > 面试题库 >

大表中的行数

简景焕
2023-03-14
问题内容
SELECT COUNT(*) FROM BigTable_1

如果我的行数超过10亿,应该使用哪种方式获取表中的行数?

更新:例如,如果上面的查询存在“超时问题”,是否有任何方法可以对其进行优化?如何更快地做到这一点?


问题答案:

如果需要准确的计数,则必须使用 COUNT (*)

如果您可以粗略计算,则可以使用分区中的行总和

SELECT SUM (Rows)
FROM sys.partitions
WHERE 1=1
And index_id IN (0, 1)
And OBJECT_ID = OBJECT_ID('Database.schema.Table');

如果您想对自己的内容感到有趣COUNT,可以执行以下操作

select COUNT (1/0) from BigTable_1


 类似资料:
  • 问题内容: oracle的嵌套表中最大可能的行数是多少? 更新 这给出了错误: 问题答案: 的下标为嵌套表的范围为1..2 ** 31 这样可以有集合中的2层** 31的元件。自从至少8.1.6起,该限制就没有改变,当然,将来可能会改变。

  • 问题内容: 我正在尝试使用以下查询创建表 我收到以下错误 任何人都可以让我知道如何避免此错误并使查询工作以创建表。 问题答案: 该表中所有字段的总大小大于限制65535,这就是为什么您会收到此错误的原因。 您应该使用type而不是长字符串。全部替换为,它应该可以正常工作。 或者,甚至更好的是,使用适当的数据类型而不是“太大”的数据类型。您真的不需要存储8000个字符,对吗?

  • 问题内容: 我有一个有4000万行且没有主键的表。在添加主键之前,我想检查表中是否有重复的条目。当我说重复条目时,我不仅意味着在特定列上重复。我的意思是整行重复。 在上一个问题中,我被告知可以执行查询以确定重复项。我该怎么做? 我正在运行PostgreSQL 8.1.22。(通过运行获得此信息)。 问题答案: 要了解是否 任何 完整存在重复(在所有列相同),这可能是最快的方法: 这是一种非常方便的

  • 问题内容: 我需要在MySQL表中设置行的最大限制。文档告诉我们可以使用以下SQL代码创建表: 但是属性不是硬性限制(“存储不超过10万行并删除其他行”),而是数据库引擎的提示,该表将至少有10万行。 我看到的解决问题的唯一可能方法是使用触发器,该触发器将检查表中的行数并删除较旧的行。但是我很确定这是一个巨大的过热:/ 另一种解决方案是每N分钟使用cron脚本清除表。这是最简单的方法,但是仍然需要

  • 问题内容: 从大型mysql表中选择随机行的快速方法是什么? 我正在使用php,但是我对任何解决方案都感兴趣,即使它是另一种语言也是如此。 问题答案: 获取所有ID,从中随机选择一个ID,然后检索整行。 如果您知道ID是连续无孔的,则只需获取最大值并计算一个随机ID。 如果到处都有孔,但大多数是顺序值,并且您不关心随机偏斜,则获取最大值,计算一个id,然后选择ID等于或大于您所计算的ID的第一行。

  • 问题内容: 我有一个网站,人们可以在上面投票。向用户显示了4辆汽车,他/她可以对他们最喜欢的汽车进行投票。 该表具有以下重要列: 目前,我对所有car_types使用了一个映射表,该表具有没有间隙的PK。我选择映射表的最大ID并创建4个随机数(PHP),然后从映射中选择那些行并获得相应的car_id。我使用这些数字从表中选择汽车。 问题 在于,后来添加到数据库中的汽车与先前添加的汽车获得相同分数的