PHPCMS 中 cache_count() 函数的作用

SpringBoot+Vue构建图书馆管理系统实战 现代Web开发中,前后端分离架构已成为主流技术范式。SpringBoot作为Java生态的微服务框架,通过自动配置和起步依赖简化后端开发;Vue.js作为渐进式前端框架,利用响应式数据绑定提升用户体验。这种技术组合特别适合业务管理系统开发,其中MyBatis作为ORM框架提供了SQL可控性与动态SQL能力,配合MySQL关系型数据库确保数据一致性。在图书馆管理系统等典型应用场景中,该技术栈可实现图书管理、借阅流程等核心功能,同时通过RESTful API实现前后端解耦。实践中需特别注意SQL注入防护(如区分 阅读详情
原先我不明白 cache_count 有什么作用,现在谈谈它的用法。

cache_count() 函数第一次看到是在 PHPCMS2008 中,作用是缓存一条 COUNT(*) SQL 查询的结果,如:

cache_count("SELECT COUNT(*) AS count FROM ...")

有一次在写一个后台分页功能时,统计 COUNT(*) 总数的查询使用了 cache_count 做缓存,但在测试分页功能时发现分页无效,本来应有第二页的,但分页结果却还是只有一页。原来是因为统计的查询语句被 cache_count 缓存了且缓存有效期还未过,因此分页结果还是原来的一页。

当时我断定,cache_count 既影响测试又没用。

但是我错了,想象一下:

总共有 88331 条记录,每页显示 20 条,共 4417 页。列表页是前台页面,假设有 10 个并发访问,每个都访问不同的页数,比如 1, 3, 5 页。
于是我发现, COUNT(*) 的结果实际上是一样的,无论是第 1 页,还是第 1000 页,只要数据不变, COUNT(*) 也不会变。实际上,当页数大于 1000 页以后,那怕每天增加 100 页左右的记录数,由于增加的记录是排在前面的,今天的页数到底是 4417 还是 4517 一点关系都没有——根本不会有真正的用户会去看第 4500 多页的数据。

设现在统计 COUNT(*) 需要用时 0.1(s) ,每天列表页会被访问 100 次,那么, COUNT(*) 总用时为 0.1*100 = 10(s) ——花 10(s) 去取 100 个相同的结果!
所以要用 cache_count ,缓存有效期为 1 天。于是,无论今天列表页被访问多少次,都只需执行一次 0.1(s) 的统计,后面每次读取缓存只需用时约 0.0002(s) 。
访问次数越多,节省的时间就越多。

这就是 cache_count 的作用。

所以,列表页都可以用 cache_count() ,唯一需要注意的只是根据数据量的不同设计不同的缓存有效期。

PHPCMS cache_count() 的缓存有效期用常量定义,这不方便灵活地控制每条查询的缓存有效期,所以我把缓存有效期也加入为 cache_count 的参数,原形如下:

cache_count($sql, $timeout = 默认缓存有效期)

%%

# 历史
2011-10-14 初稿,包含 cache_count() 及 page_select() 两个函数的说明。
2012-04-22 删除 page_select() 函数的说明,只说明 cache_count() 函数。
MuleSoft企业级AI编排:LLM集成的合规、治理与生产实践 AI Orchestration(AI编排)是企业将大语言模型规模化接入现有IT架构的核心范式,其本质是以API为中心、策略为驱动、治理为底线的能力调度体系。不同于AI Workflow或AI Agent,它聚焦于模型调用前后的身份认证、流量治理、敏感数据脱敏、全链路审计与SLA保障等工程化刚需。在金融、制造、基建等强合规行业,MuleSoft凭借原生支持SAP/Oracle集成、开箱即用的审计日志、标准化可观测性及事务上下文透传能力,成为LLM落地生产环境的关键中枢。本文详解如何通过分层LLM架构(基础语 阅读详情

相关推荐

PHPCMS后台绩效统计模块

PHPCMS的独立模块 对源程序无影响 相关使用说明见“安装说明”

php获取数据表数据总数,phpcms v9统计某张数据表中的信息数量

eg1:统计某个人表单向导中的信息数量,这张数据表叫v9_form_yuyue{pc:get sql="SELECT count(*) as count FROM v9_form_yuyue" cache = "3600" return = "data"}{loop $data $v}数据表v9_form_yuyue中共有 {$v[count]} 条信息{/loop}{/pc}觉得信...

weixin_26833939的博客 630

CMSware计算统计函数CMS_COUNT详解

本教程主要对CMSware系统中计算统计函数CMS_COUNT进行了详细的介绍与说明。

phpcms统计 count

{get sql="SELECT count(*) as fcount FROM `teng_content` bwhere b.inputtime>$time ORDER BY b.contentidDESC"} {/get} {$fcount }

fanblog的博客 2327

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明

国标充电CAN的ID,仅供学习参考。

qqq080的博客 7796

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5269

PHPCMS内容页生成静态失败的原因与全面解决方法

PHPCMS静态生成失败问题分析与解决方案 摘要:PHPCMS内容页静态生成失败是常见问题,表现为后台无响应、文件未创建或生成不完整。主要原因包括:服务器权限不足(40%)、PHPCMS配置错误(30%)、代码缺陷(20%)及外部因素(10%)。解决方案分四步:1)检查文件权限和磁盘空间;2)验证静态路径设置和模板语法;3)升级核心代码和修复数据库;4)分阶段测试验证。预防措施建议定期维护、环境标准化和建立备份策略。通过系统排查和针对性处理,可有效解决静态生成问题,提升网站性能和稳定性。

2503_90371317的博客 1234

卸载重装Ubuntu22.04双系统

先说一下写此篇文章的背景吧,我在Windows下配置了三个cornerNet深度学习环境分别是cuda10.3(显卡版本太高不支持),cuda11.3(配置后偶然看到一篇说这个版本win下只能用CPU跑),最后是cuda11.1终究还是没能跑通代码,因为它的代码是在Liunx系统写的,就想着装个Ubuntu试试看,在网上看说一般软件不要装太高版本,我就下载了470版的显卡驱动,跟着步骤升级了系统内核,结果第二天开机Ubuntu就崩了,开机黑屏左上角只有一道横杠显示,只能按ctrl+shift+f5进入命令窗

编程小白的博客 8105

Mysql - 排查出现The table is full问题

文章目录Mysql - 排查出现The table is full问题1.对应表的数据容量达到上限2.服务器空间已满 Mysql - 排查出现The table is full问题  首先这里先描述下问题出现的场景,由于业务迭代过程中数据量出现剧增需要对服务进行压力测试,所以我们要搭建一套压测环境。这里就需要搭建一套专属压测的数据库,在安装好数据库服务后我们需要将现有正确数据导入进去模拟生产环境的场景。    导入数据到数据库这点就不多介绍了,有些可以直接通过两台数据库连接传输数据,或者通过一些数据日志文

了无牵挂者忘生,心有所爱者忘死 5357

Unity3d实现红外热成像效果

1.将需要在红外图像中高亮的物体设置到图层PostProcessing。 2.新建一个相机CameraHighLight,设置其Culling Mask为PostProcessing,也就是在这个相机中只有PostProcessing图层的物体可见。 3.新建一个RenderTexture,命名为HightLightRt,将CameraHighLight的Target Texture设HightLightRt。 4.新建一个相机Camera2,这个相机用于显示其他物体。 接下来将CameraHigh

zouxin_88的专栏 8327

Codex,Copilot 是什么

GitHub Copilot是什么 **GitHub Copilot** 是一款由 **GitHub** 和 **OpenAI** 合作开发的 **AI 代码辅助工具**,它基于 **OpenAI Codex 技术**,能够根据上下文自动生成代码建议,大幅提升编程效率

ZhangJiqun&191cm&85kg 6766

phpcms 点赞_PHPCMS里是如何统计文章浏览次数,挺好,点赞!

PHPCMS的文章的浏览次数统一通过页面里面的一段JS去请求浏览次数的API来完成计数统计,这样就算整个页面静态化之后,因为有JS去请求,所以还是能统计到.根目录下的api.php是所有api的总入口,根据传入的$_GET['op']的值不同,而去调用phpcms/api/目录下不同的api文件.因为统计次数传入的$_GET['op']='count',所以调用的就是phpcms/api/coun...

weixin_29188759的博客 414

03 - AMDGPU驱动架构概览

本文介绍了AMDGPU驱动的整体架构,重点分析其图形驱动(AMDGPU)和计算驱动(KFD)的双重结构。KFD驱动作为HSA架构的核心组件,包含进程管理、设备管理等模块,其中SVM功能在kfd_svm.c实现。文章详细解析了KFD的核心组件、初始化流程及字符设备接口,并阐述了TTM框架在GPU内存管理中的作用。通过架构图和代码片段展示了AMDGPU与KFD的协作机制,为后续深入理解SVM实现奠定基础。

图形/计算GPU的驱动与虚拟化技术分享园地 3362

PHPCMS2008源码浅析-Cache原理分析 PHPCMS20008二次开发

a.页面缓存,在后台 网站配置-》性能优化中,配置了启用PHP页面缓存if(CACHE_PAGE && !defined(IN_ADMIN)) cache_page_start(); //看是否调用页面缓存global.func.php 有如下函数function cache_page_start(){define(CACHE_PAGE_ID, md5(RELATE_URL))

CaterPillar's IT Lifes 1441

XCP实战系列介绍07-使用ASAP2 Editor生成A2l文件详解

介绍通过ASAP2 Editor工具生成A2l文件步骤详解

initiallizer的博客 7296

2025年最新雷电模拟器9.22安装Magisk面具和LSPosed框架完整图文教程 文章末尾附所需软件下载

操作环境:雷电模拟器9.0.22 虚拟系统版本android 91、设置-其他设置-Root权限-开启2、设置-性能设置-System.vmdk可写入3、安装Magisk-18a0b94a-delta(25205).apk,运行并给予root权限4、选择右上角安装弹出“允许“magisk Delta”访问您设备上的照片、媒体内容和文件吗?“选择允许,然后结束magisk进程。5、从新运行magisk选择右上角安装-选择修补boot镜像中的vbmeta和安装到Recovery。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7092

从GLM-5.2推理加速看大模型部署:编译优化与算子融合实战

在深度学习模型部署领域,推理加速是提升服务响应速度和降低算力成本的核心技术。其基本原理是通过优化计算图在硬件上的执行效率,主要技术路径包括静态图编译、算子融合和内存调度。这些技术的核心价值在于,它们能显著减少框架开销和内存访问延迟,从而在商业化场景中实现更低的运营成本和更佳的用户体验。具体到应用场景,大语言模型(LLM)的线上服务对推理延迟和吞吐要求极高,这驱动了TensorRT-LLM等专用推理引擎的发展。这些引擎通过全局内存规划、极限算子融合和硬件指令级优化,能够实现数倍的性能提升。本文以GLM-5.2

weixin_30325971的博客 419

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CadInspector实战指南:CAD快速看图、测量批注与批量转换

CAD图纸查看是工程设计协作中的高频需求。面对动辄几十MB的DWG文件,传统CAD客户端启动慢、操作重,而轻量级查看工具通过优化渲染引擎与图层管理,实现快速打开、准确测量与批注。这类工具的核心价值在于将图纸浏览、标注、导出PDF等流程轻量化,并支持批量转换与API集成,帮助企业打通图纸分发、审图归档等业务链路。本文以CadInspector为例,围绕其部署安装、功能测试、命令行批量转换、REST接口调用及合规实践展开,帮助读者快速验证工具是否满足自身场景,并规避常见踩坑问题。

weixin_33938733的博客 486

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

鸿蒙OS5之CacheCount在鸿蒙中的作用

参数​​​​作用​​​​推荐场景​​​​性能影响​​CacheCount控制预加载/复用的列表项数量所有列表滑动场景帧率提升,内存占用增加@Reusable启用组件复用复杂自定义列表项减少组件创建时间图片懒加载延迟加载非可视区域图片含大图/视频的列表降低内存峰值,提升流畅度。

Qsny999的博客 495

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

cache_count

ruby 代码 #thingsuser.rb    class Thingsuser < ActiveRecord::Base        belongs_to :user       belongs_to :thing, :counter_cache => true      end   ruby 代码 #...

benson 一切皆有可能 205

CST局部网格加密实战:提速降耗的三大核心路径

局部网格加密是电磁仿真中提升精度与效率的关键技术,其本质是在场强梯度大、材料突变、边界条件敏感等物理关键区域实施针对性网格细化。它基于电磁场分布规律,通过控制单元尺寸、过渡平滑度和质量指标,显著改善求解稳定性与收敛速度。相比全局加密,局部策略可在减少总单元数的同时提升S参数精度、降低内存占用,并适配时域/频域不同求解器需求。在CST Studio Suite中,该技术主要依托手动设置、Special规则引擎和边界条件驱动三种工程化实现方式,广泛应用于微波滤波器、天线馈电网络及毫米波器件仿真优化。

weixin_34221276的博客 1016

Spark cache/persist区别和cache使用误区分析

Spark cache的用法及其误区: 一、使用Cache注意下面三点 (1)cache之后一定不能立即有其它算子,不能直接去接算子。因为在实际工作的时候,cache后有算子的话,它每次都会重新触发这个计算过程。 (2)cache不是一个action,运行它的时候没有执行一个作业。 (3)cache缓存如何让它失效:unpersist,它是立即执行的。persist是lazy级别的(没有计...

aijiudu的博客 2万+

【phpcms-v9】缓存目录caches下的各个文件的作用

第一:caches/caches_commons目录下缓存文件: 1.caches/caches_commons/caches_data/category_content.cache.php: 所有栏目对应的站点ID 2.caches/caches_commons/caches_data/category_content_1.cache.php: 当前站点id下所有栏目的详

PHP在线开发笔记 2万+

phpcms 2007 mysql errno:1064_PHPCMS安装/升级报错 MySQL Errno : 1064

安装或者升级PHPCMS时出现以下类似错误信息:错误一:MySQL Query : CREATE TABLE `phpcms_admin` ( `userid` mediumint(8) unsigned NOT NULL, `username` char(20) NOT NULL, `allowmultilogin` >tinyint(1) unsigned NOT NULL defaul...

weixin_33205791的博客 228

PHPcms 缓存目录cache下各文件的作用:

第一:caches/caches_commons目录下缓存文件:第二:caches/caches_template目录下缓存文件: 第三:caches/configs目录下缓存文件: 第四:caches/caches_model目录下缓存文件

huobobo124的博客 1604
上一篇: 移动 SVN 仓库,处理 expected fs format between
下一篇: GVIM 从 Windows(XP) 移到 Linux(Ubuntu)
gevolution90
博客等级 码龄18年 19粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值