SELECT count(DeviceName) FROM AllDevice;
有没有更有效的办法,现在可能需要比较频繁的获得一张表的行数,表是 1-10 亿条数据,但只在最后 10 条频繁的添加或删除。
也就是这张表,加 3-5 条数据,然后删除 7 到 8 条数据,操作比较频繁,但也有偶发,比较大的删除或添加
现在需要比较频繁的去查询这张表的行数,有没有更好的办法
SELECT count(DeviceName) FROM AllDevice;
有没有更有效的办法,现在可能需要比较频繁的获得一张表的行数,表是 1-10 亿条数据,但只在最后 10 条频繁的添加或删除。
也就是这张表,加 3-5 条数据,然后删除 7 到 8 条数据,操作比较频繁,但也有偶发,比较大的删除或添加
现在需要比较频繁的去查询这张表的行数,有没有更好的办法
|
faust24601Mar 19, 2021 via iPhone
1
加一个表存数量字段,增删的时候更新这个字段
|
|
2
新建一张表记录这个 count 的动态变化;
先初始化创建一条数据, +M (当前表行数) 每次发生添加删减的时候, 创建一条记录 +N or -N 最后对这个列求和 不知道可行不可行 |
|
KilerdMar 19, 2021
3
先读一次出来放在 redis,然后每次修改的地方都做 INC DEC 的操作,然后定时刷新一次就可以了。
|
|
andy2415Mar 19, 2021
4
缓存一个变量 每次增删维护一下变量值
|
|
xupefeiMar 19, 2021 via iPhone
5
有个邪道是 partition by DeviceName,然后 count 就会依赖 column metadata 进行计数。
不过 sqlite 有没有这些 metadata 我不知道… |
|
codehzMar 19, 2021 via Android
6
(提供个思路,没测试过性能表现)
用触发器去更新另一个表的字段。。。根据插入和删除自动维护 不确定会对插入性能造成多少影响) |
|
bthuluMar 20, 2021
7
触发器啊
|