찾다
백엔드 개발PHP 튜토리얼php内存消耗和,高并发处理,php排序。


做了一个sql查询,还通过了获取的数组下标来排序。但是前辈说会有大量访问的时候这样很消耗内存,网上看了下好多说的方法是做cache,有没有其他的方法处理呢?


回复讨论(解决方案)

你的语句,不会很消耗内存。activeNum是索引就可以了。
当然有cache是最好的。

你的语句,不会很消耗内存。activeNum是索引就可以了。
当然有cache是最好的。


要是有几十万上百万的数据,每次有人访问index就去取一次不会消耗资源吗?
如果加索引的话,加什么索引好呢?这个字段是随时变化的


你的语句,不会很消耗内存。activeNum是索引就可以了。
当然有cache是最好的。


要是有几十万上百万的数据,每次有人访问index就去取一次不会消耗资源吗?
如果加索引的话,加什么索引好呢?这个字段是随时变化的

如果数据值是唯一的   就加唯一索引   否则加普通索引
如果mysql表数据多  几百万的时候  那需要考虑分表

1、没看到 数组下标来排序 的代码
2、activeNum 上应有索引(普通索引即可)
3、你知道访问数据库和访问 cache 的区别吗?
将数据库的压力转嫁到 cache 就一定合适吗?
如果有有几十万上百万的数据,那么你的 cache 策略是什么?

1、没看到 数组下标来排序 的代码
2、activeNum 上应有索引(普通索引即可)
3、你知道访问数据库和访问 cache 的区别吗?
将数据库的压力转嫁到 cache 就一定合适吗?
如果有有几十万上百万的数据,那么你的 cache 策略是什么?



activeNum 是数字型,用索引也有效吗?一直以为 索引只用在where作用的字段上,排序的字段也可以用索引吗

排序也可以用到索引,不然数据量很大,不适用索引,你数据库不是崩溃。

1、没看到 数组下标来排序 的代码
2、activeNum 上应有索引(普通索引即可)
3、你知道访问数据库和访问 cache 的区别吗?
将数据库的压力转嫁到 cache 就一定合适吗?
如果有有几十万上百万的数据,那么你的 cache 策略是什么?


目前 activeNum这个字段没有加索引。

EXPLAIN 你的查询指令

MySQL 会给你有益的建议!而不是自己想当然的说

EXPLAIN 你的查询指令

MySQL 会给你有益的建议!而不是自己想当然的说



用命令查出来貌似不能用索引,我现在想到的一个办法是,新建一个rank表把用户的id,排名根据数组取下标放到rank表里面,然后在新表里面加一个uid等于0的字段,排名那里放我写入进去的时间,每次来取排名的时候先取uid=0的时间,对比当前时间,如果大于30分钟,那么就重新去active表读取一次排名放到rank表里面。不知道这方法可行么?

possible_key 是可被使用的索引,由于你没有对 activeNum 做索引,自然就没有啦
于是 Extra 列就有了 filesort,表示用了一个临时文件来对 activeNum 进行排序

possible_key 是可被使用的索引,由于你没有对 activeNum 做索引,自然就没有啦
于是 Extra 列就有了 filesort,表示用了一个临时文件来对 activeNum 进行排序


好吧,我再捣鼓捣鼓,php在linux里面有没有区分是否线程安全呢?每个用户访问一次比如我写了一个DB调用数据库,是只引用一次,所有用户都用的这一个,还是每个人都是独立的呢?

每个人都是独立的

你可以试试 单例模式,  把结果存在静态变量中试试

如果查询的量非常大,而数据又不是实时的可以做缓存来处理.但是如果数据又要是实时的 我觉得先找出瓶颈在什么地方,普通的索引等优化这些都是基础。

谢谢大家,用临时表做缓存解决了。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
golang框架架构如何实现高并发处理?golang框架架构如何实现高并发处理?Jun 02, 2024 am 09:36 AM

在Go框架架构中,提升高并发处理能力的关键策略有:利用协程(Goroutine)的轻量级并发机制,并行执行任务,提升CPU利用率。运用并发信道进行协程间安全高效的数据交换,保障数据一致性和并发性。实施异步处理机制,将耗时任务移至后台执行,避免阻塞请求响应,提升响应能力。

Nginx服务器的高并发处理和请求响应优化技巧Nginx服务器的高并发处理和请求响应优化技巧Aug 04, 2023 pm 08:37 PM

Nginx服务器的高并发处理和请求响应优化技巧在当今互联网时代,网站的高并发处理和请求响应速度直接影响着用户的体验。而Nginx作为一款高性能、多功能的服务器软件,能够帮助我们实现高并发处理和请求响应优化。本文将介绍几种常用的技巧和代码示例,帮助读者更好地了解如何利用Nginx实现高并发处理和请求响应优化。一、使用反向代理Nginx的反向代理功能可以帮助我们

如何利用缓存技术解决PHP高并发处理问题如何利用缓存技术解决PHP高并发处理问题Aug 10, 2023 pm 01:30 PM

如何利用缓存技术解决PHP高并发处理问题由于互联网的迅猛发展,如今的网站和应用程序面临着越来越高的并发访问量。当面对大量用户同时访问一个PHP网站时,传统的PHP脚本执行方式可能会导致服务器性能下降,响应时间变长,甚至产生崩溃的情况。为了解决这个问题,我们可以采用缓存技术来提高PHP网站的并发处理能力。什么是缓存技术?缓存技术是将一些经常被访问的数据临时存储

PHP和SQLite:如何处理大数据和高并发PHP和SQLite:如何处理大数据和高并发Jul 28, 2023 am 11:25 AM

PHP和SQLite:如何处理大数据和高并发在当今的互联网时代,处理大数据和高并发是开发者们面临的常见挑战。PHP作为一种非常流行的服务器端脚本语言,SQLite作为一种轻量级的嵌入式数据库,它们的结合可以提供一个高效且可扩展的解决方案。本文将介绍如何使用PHP和SQLite来处理大数据和高并发,并附上相关代码示例。一、处理大数据当我们需要处理大量数据时,S

PHP开发实时聊天功能的高并发处理技术PHP开发实时聊天功能的高并发处理技术Aug 26, 2023 pm 07:49 PM

PHP开发实时聊天功能的高并发处理技术随着互联网的发展,实时聊天功能逐渐成为各种应用的重要组成部分。无论是社交媒体、电商平台还是在线客服,都需要实现高并发的实时聊天功能来满足用户的需求。本文将介绍使用PHP开发实时聊天功能的高并发处理技术,并给出相应的代码示例。一、使用长连接技术实时聊天功能有一个特点,就是需要实时地将消息推送给在线用户。传统的Web开发中,

使用Node.js和Redis构建在线投票应用:如何处理高并发使用Node.js和Redis构建在线投票应用:如何处理高并发Jul 29, 2023 pm 09:17 PM

使用Node.js和Redis构建在线投票应用:如何处理高并发随着互联网的发展,越来越多的应用需要处理高并发的情况。在线投票应用是一种典型的高并发场景,用户在短时间内提交大量的投票请求,应用需要能够快速处理这些请求并保持数据一致性。本文将介绍如何使用Node.js和Redis构建一个高并发的在线投票应用。Redis简介Redis是一种基于内存的键值数据库,因

PHP后端API开发中的如何处理高并发和高负载PHP后端API开发中的如何处理高并发和高负载Jun 17, 2023 am 10:12 AM

随着移动互联网的迅速发展,越来越多的应用程序需要支持高并发和高负载的处理,而PHP作为一种开源的脚本语言,已经成为了许多网站应用开发的主流,尤其是在互联网领域中。然而,当PHP被用于API开发时,它面临着一些困难,包括如何处理高并发和高负载。本篇文章将介绍一些处理这些问题的最佳实践。一、横向扩展横向扩展是一种响应高并发和高负载的常见方法,通过增加服务器数量或

PHP高并发处理中的异常处理与容错机制PHP高并发处理中的异常处理与容错机制Aug 12, 2023 pm 06:46 PM

PHP高并发处理中的异常处理与容错机制随着互联网的发展,越来越多的网站和应用面临着高并发的挑战。在这种情况下,为了保证系统的稳定性和可靠性,异常处理和容错机制变得尤为重要。PHP作为一种常用的编程语言,也需要在高并发处理中做好异常处理和容错机制的工作。一、异常处理在PHP中,异常处理可以通过使用try-catch代码块来实现。当遇到可能产生异常的代码时,我

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.