찾다
백엔드 개발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和SQLite:如何处理大数据和高并发PHP和SQLite:如何处理大数据和高并发Jul 28, 2023 am 11:25 AM

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

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

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

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

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

在PHP中使用swoole扩展实现高并发处理在PHP中使用swoole扩展实现高并发处理Jun 25, 2023 pm 02:30 PM

随着互联网的不断发展,各种类型的网站和Web应用程序也越来越多。这时候,处理高并发成为了一个不可避免的问题。高并发并不只是访问量大的问题,还要处理多个请求同时发起的问题。对于Web应用程序来说,处理多个请求的能力也就是并发处理的能力。在PHP中,swoole扩展提供了一种非常优秀的模型来处理高并发请求。Swoole扩展是开源的,类似于PHP语言的一个扩展,非

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

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

如何利用分布式锁提升PHP高并发处理能力如何利用分布式锁提升PHP高并发处理能力Aug 13, 2023 pm 03:51 PM

如何利用分布式锁提升PHP高并发处理能力在当今互联网应用中,高并发处理能力是一个关键问题。随着用户数量的增长和业务的扩展,如何有效地处理并发请求成了每个开发者必须解决的挑战。在PHP应用中,我们可以利用分布式锁来提升系统的高并发处理能力。本文将介绍分布式锁的概念、原理,并通过代码示例展示如何在PHP应用中使用分布式锁。一、分布式锁的概念和原理分布式锁可以理解

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를 무료로 생성하십시오.

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF

mPDF

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

메모장++7.3.1

메모장++7.3.1

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기