开发者社区> 问答> 正文

php高并发下如何防止数据的重复写入

已解决

前端请求php写入数据的接口太频繁,导致mysql中出现大量重复数据,如何处理

展开
收起
我的中国 2016-02-07 18:14:24 7987 0
1 条回答
写回答
取消 提交回答
  • R&S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者
    采纳回答

    这个问题从三个方面来回答题主:

    前端
    前端的话要对请求进行限制,通过disabled提交按钮或者是设置定时器来禁止用户多重提交。

    接口
    接口一定要做好limit,但是这个并不是解决这个问题的关键点,因为你不可能设置一个limit为1 time per min。为什么关注这个点是因为有时候用户并不是一个人,可能是恶意程序。

    后端服务
    个人觉得这个是重点,它包括PHP端和Mysql。我不清楚你的数据是怎样的,我举例新浪微博。如果一个用户写好微博然后快速点击了两次发送,你会看到什么?两条相同微博么?不可能,出现了你来找我好了。最简单的做法,要对上次数据缓存,然后校验是否是重复提交的。Mysql结构要设计好,如果你的数据要唯一,那么你的字段和主键设计时候要设置确保唯一性。

    先码这么多,解决方法有好多种,可以去搜索一下。

    2019-07-17 18:28:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载