数据库百万级数据高效获取总数
作者:smice分类:Java
日期:2022-01-18 11:25:002022-01-18阅读:320

基本上一搜索mysql或者数据库获取总数,得到的结果都是讨论select()、select(1)、select(column)的效率。
当然效率上select(
)=select(1)>select(column),当数据量不是特别大,几万级别的可以直接使用select()。
但是当百万级别时想实时获取时还使用select(
)时cpu占用率飙升(如下图),这时就不能直接从数据库查询,而是采用缓存。


情景一、需要数据比较精确

可以采用redis(mysql中新建个表储存也可以),第一次启动时将总数获取,存入redis,增删的时候也同时增删redis中缓存的总数。

情景二、需要的数据不太精确,不想另设缓存

可直接使用select TABLE_ROWS from information_schema.`TABLES` WHERE TABLE_NAME = 'table_name';

这是mysql内部的一个缓存,不会实时更新,在数据不需要特别精确的时候可以直接使用,table_name换成要统计的表名。

弹幕评论