mysql - php请求卡库保存多条数据
从其他程序推送数据到php程序里, 然后对数据进行判断是否存在,存在则退出;不存在则插入数据库, 并返回处理结果到数据源
当流量大,出现卡库的情况, 返回不到结果到数据源。就会重复请求3次。最后的结果就是3次请求的数据都插入了
慢导致判断不到数据是否存在。大神们,有什么好的解决办法吗?
升级配置是一方面. 在程序上应该怎么解决这个问题呢
回复内容:
从其他程序推送数据到php程序里, 然后对数据进行判断是否存在,存在则退出;不存在则插入数据库, 并返回处理结果到数据源
当流量大,出现卡库的情况, 返回不到结果到数据源。就会重复请求3次。最后的结果就是3次请求的数据都插入了
慢导致判断不到数据是否存在。大神们,有什么好的解决办法吗?
升级配置是一方面. 在程序上应该怎么解决这个问题呢
我觉得你的重复这个和卡库并没有太大关系, 流量大的时候对数据库做高并发的插入处理, 这种方式本身就可能有问题, 在这种情况情况下, 是不是可以通过队列
(使用redis就可以实现)来防止你的插入重复的问题会比较好一些呢.
至于卡库, 当然是和流量有关系了, 对此, 你可以把库进行主从配置
, 主库用来写, 从库用来读, 这样读的压力就不会落在主库上面了, 也就不会太卡,同时, 对于读的操作, 必要添加一些缓存, memcached, redis都很不错
首先一个问题,你是如何判断这条数据是唯一的?如果必须先插入才知道,那我建议使用redis做一个锁,对你这个用户的操作加锁,然后去改数据库。
mysql没有upsert比较遗憾
当然自己实现一个upsert也可以 如果数据能hash的话 可以利用类似bloom filter的方法在内存里先过滤一道
不准的再去查数据库
单从mysql可以使用事务配合唯一索引来做到数据不重复
这个问题是和卡库没关系,实际上应该是程序上的写法出错了。数据库是有队列的,不需要你自己去处理。
查询-->返回-->插入
你的问题应该出现在数据库返回给PHP的时候,又被查询了一样的不存在数据,因为返回还是不存在,所以PHP还是执行了插入。可以考虑用存储过程直接在数据库判断存在性然后写入。唯一索引、组合唯一也可以考虑用上。
实际上此类的并发出现概率原则上是非常低的,你可以检查下是不是使用了多线程配置这个网站了。
多谢几位了.

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

MySQL 8.4(截至 2024 年的最新 LTS 版本)中引入的主要变化之一是默认情况下不再启用“MySQL 本机密码”插件。此外,MySQL 9.0完全删除了这个插件。 此更改会影响 PHP 和其他应用程序

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

PHP连接MySQL后页面空白,die()函数失效的原因分析在学习PHP和MySQL数据库连接的过程中,常常会遇到一些让人困惑...

CMS 代表内容管理系统。它是一种软件应用程序或平台,使用户能够创建、管理和修改数字内容,而无需先进的技术知识。 CMS 允许用户轻松创建和组织内容
