SQLite:检查表是否超过x行的最快方法

检查sqlite表是否超过100,000行的最快方法是什么?

测试表有26列和200,000,000行.

SELECT COUNT(*) FROM ( SELECT * FROM table LIMIT 100001 )

花了0.27秒.

以下三个需要12分半钟

SELECT COUNT(*) FROM table
SELECT COUNT(*) FROM table LIMIT 100001
SELECT CASE WHEN COUNT(Id) >= 100000 THEN 1 ELSE 0 END FROM table
select count(*) from (
 select top 100001 ID from T
) x

我们需要扫描索引来回答查询.这至少将索引扫描限制为前100001行.如果表格有1米的行,这可以节省90%的工作量.

(在这里使用sql Server语法 – 请翻译自己,因为我不能这样做).

您可以选择一些索引列而不是ID.我不知道优化器是否可以自己做.

请注意,像查看身份或ID列值这样的聪明技巧通常不起作用.

支持上述查询,请创建bit类型的虚拟列并将其编入索引.索引将非常紧凑,扫描速度最快.

相关文章

安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压缩包。 创建s...
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Windows下的包下...
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员  ...
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、延迟时间和整...