> 백엔드 개발 > PHP 튜토리얼 > 我做了一个投票项目,不想每一次投票都去访问一次数据库,想要在一定时间之后才更新数据库,应该如何操作了?

我做了一个投票项目,不想每一次投票都去访问一次数据库,想要在一定时间之后才更新数据库,应该如何操作了?

WBOY
풀어 주다: 2016-06-23 14:24:10
원래의
975명이 탐색했습니다.

数据库 延时 延迟 投票

我做了一个投票项目,不想每一次投票都去访问更新一次数据库,想要在一定时间之后才更新数据库,应该如何操作了?

回复讨论(解决方案)

如果投票后不立即更新数据库,那么显示出的投票结果不就不正确么?

实时性的功能,没必要批量插入。

如果投票后不立即更新数据库,那么显示出的投票结果不就不正确么? 我想是一分钟更新一次数据库

我能想到的比较直接的方法是:

将投票结果写入一个文本文件,格式可以是SQL语句(推荐),也可以是数据的简单dump。

后台跑一个cron的工作,每隔一分钟扫描该软件,用一些标记(比如上次处理的最大ID,timestamp)来过滤需要更新的内容到数据库。

可以把投票结果分时间段存入数组,数组写入一个临时文件,每隔一段时间提取这个文件,然后清空这个文件,跟4楼的思路差不多!

用队列吧!这样应该挺方便,数据实时还便捷~

使用缓存比如memcache如何?

每过一段时间批量读取并写入数据库 同时清空memcache

做一个b,把数据写到表b里,隔断时间把b的数据更新到a里面。

和 4 5 7楼想法差不多 创建临时文件 存储然后 到时间读到库里面去

写入文件 再存入数据库?
那么数据库还有什么用处?

我建议 你还是直接写入数据库吧
文件的并发其实不好处理的
而且 从读取文件 和数据库的角度来说我觉得 还是数据库比较方便

数据库就是干这个的。你的这个项目是个非常小的项目。

mysql内存表处理数据。

我能想到的比较直接的方法是:

将投票结果写入一个文本文件,格式可以是SQL语句(推荐),也可以是数据的简单dump。

后台跑一个cron的工作,每隔一分钟扫描该软件,用一些标记(比如上次处理的最大ID,timestamp)来过滤需要更新的内容到数据库。
我就是以这个思路来做的

可以把投票结果分时间段存入数组,数组写入一个临时文件,每隔一段时间提取这个文件,然后清空这个文件,跟4楼的思路差不多!
你说的每隔一段时间提取文件应该如何操作了?PHP的程序都是触发以后才运行的吧,如何可以每隔一段时间自动提取这个文件了?

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿