목차
回复讨论(解决方案)
백엔드 개발 PHP 튜토리얼 php内存消耗和,高并发处理,php排序。

php内存消耗和,高并发处理,php排序。

Jun 20, 2016 pm 12:49 PM


做了一个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으로 문의하세요.

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

golang 프레임워크 아키텍처는 어떻게 높은 동시성 처리를 달성합니까? golang 프레임워크 아키텍처는 어떻게 높은 동시성 처리를 달성합니까? Jun 02, 2024 am 09:36 AM

Go 프레임워크 아키텍처에서 높은 동시성 처리 기능을 향상시키는 핵심 전략은 Goroutine의 경량 동시성 메커니즘을 활용하여 작업을 병렬로 실행하고 CPU 활용도를 높이는 것입니다. 코루틴 간의 안전하고 효율적인 데이터 교환을 위해 동시 채널을 사용하여 데이터 일관성과 동시성을 보장합니다. 요청 응답 차단을 방지하고 응답 기능을 향상시키기 위해 시간이 많이 걸리는 작업을 백그라운드로 이동하여 실행하는 비동기 처리 메커니즘을 구현합니다.

Nginx 서버의 높은 동시 처리 및 요청 응답 최적화 기술 Nginx 서버의 높은 동시 처리 및 요청 응답 최적화 기술 Aug 04, 2023 pm 08:37 PM

Nginx 서버의 높은 동시성 처리 및 요청 응답 최적화 기술 오늘날의 인터넷 시대에 웹사이트의 높은 동시성 처리 및 요청 응답 속도는 사용자 경험에 직접적인 영향을 미칩니다. 고성능, 다기능 서버 소프트웨어인 Nginx는 높은 동시 처리 및 요청 응답 최적화를 달성하는 데 도움이 될 수 있습니다. 이 기사에서는 독자가 Nginx를 사용하여 높은 동시성 처리 및 요청 응답 최적화를 달성하는 방법을 더 잘 이해할 수 있도록 몇 가지 일반적인 기술과 코드 예제를 소개합니다. 1. 역방향 프록시 사용 Nginx의 역방향 프록시 기능은 우리에게 도움이 될 수 있습니다

PHP와 SQLite: 빅데이터와 높은 동시성을 처리하는 방법 PHP와 SQLite: 빅데이터와 높은 동시성을 처리하는 방법 Jul 28, 2023 am 11:25 AM

PHP 및 SQLite: 빅 데이터 및 높은 동시성을 처리하는 방법 오늘날의 인터넷 시대에 빅 데이터 및 높은 동시성을 처리하는 것은 개발자가 직면한 일반적인 과제입니다. PHP는 매우 널리 사용되는 서버측 스크립팅 언어이며 SQLite는 경량 임베디드 데이터베이스입니다. 이들의 조합은 효율적이고 확장 가능한 솔루션을 제공할 수 있습니다. 이 글에서는 PHP와 SQLite를 사용하여 빅데이터와 높은 동시성을 처리하는 방법을 소개하고 관련 코드 예제를 첨부합니다. 1. 빅데이터 처리 대용량 데이터를 처리해야 할 때, S

캐싱 기술을 사용하여 PHP 높은 동시성 처리 문제를 해결하는 방법 캐싱 기술을 사용하여 PHP 높은 동시성 처리 문제를 해결하는 방법 Aug 10, 2023 pm 01:30 PM

캐싱 기술을 사용하여 PHP의 높은 동시 처리 문제를 해결하는 방법 인터넷의 급속한 발전으로 인해 오늘날의 웹 사이트와 애플리케이션은 점점 더 높은 동시 방문에 직면하고 있습니다. 많은 수의 사용자가 동시에 PHP 웹 사이트에 접속할 경우 기존의 PHP 스크립트 실행 방식을 사용하면 서버 성능이 저하되고 응답 시간이 길어지며 심지어 충돌이 발생할 수도 있습니다. 이 문제를 해결하기 위해 캐싱 기술을 사용하여 PHP 웹 사이트의 동시 처리 기능을 향상시킬 수 있습니다. 캐싱 기술이란 무엇입니까? 캐싱 기술은 자주 액세스하는 일부 데이터를 임시로 저장하는 것입니다.

높은 동시성 처리를 달성하기 위해 PHP에서 swoole 확장 사용 높은 동시성 처리를 달성하기 위해 PHP에서 swoole 확장 사용 Jun 25, 2023 pm 02:30 PM

인터넷이 계속 발전함에 따라 다양한 유형의 웹사이트와 웹 애플리케이션이 점점 더 많아지고 있습니다. 이때 높은 동시성을 다루는 것은 피할 수 없는 문제가 되었습니다. 높은 동시성은 대규모 방문의 문제일 뿐만 아니라 동시에 시작되는 여러 요청의 문제이기도 합니다. 웹 애플리케이션의 경우 여러 요청을 처리하는 기능은 동시에 처리하는 기능이기도 합니다. PHP에서 swoole 확장은 높은 동시 요청을 처리하는 데 매우 뛰어난 모델을 제공합니다. Swoole 확장은 오픈 소스이며 PHP 언어의 확장과 유사합니다.

PHP에서 실시간 채팅 기능 개발을 위한 높은 동시성 처리 기술 PHP에서 실시간 채팅 기능 개발을 위한 높은 동시성 처리 기술 Aug 26, 2023 pm 07:49 PM

PHP를 위한 고성능 동시 처리 기술 실시간 채팅 기능 개발 인터넷의 발달과 함께 실시간 채팅 기능은 점차 다양한 애플리케이션에서 중요한 부분이 되었습니다. 소셜 미디어, 전자상거래 플랫폼, 온라인 고객 서비스 등 사용자 요구 사항을 충족하려면 동시성이 높은 실시간 채팅 기능을 구현해야 합니다. 이 기사에서는 PHP를 사용하여 실시간 채팅 기능을 개발하기 위한 높은 동시성 처리 기술을 소개하고 해당 코드 예제를 제공합니다. 1. 장거리 연결 기술을 활용하라 실시간 채팅 기능의 특징 중 하나는 온라인 사용자에게 실시간으로 메시지를 푸시해야 한다는 점이다. 전통적인 웹 개발에서는

분산 잠금을 사용하여 PHP의 높은 동시성 처리 기능을 향상시키는 방법 분산 잠금을 사용하여 PHP의 높은 동시성 처리 기능을 향상시키는 방법 Aug 13, 2023 pm 03:51 PM

분산 잠금을 사용하여 PHP의 높은 동시성 처리 기능을 향상시키는 방법 오늘날의 인터넷 애플리케이션에서는 높은 동시성 처리 기능이 핵심 문제입니다. 사용자 수가 증가하고 비즈니스가 확장됨에 따라 동시 요청을 효과적으로 처리하는 방법은 모든 개발자가 해결해야 하는 과제가 되었습니다. PHP 애플리케이션에서는 분산 잠금을 사용하여 시스템의 높은 동시 처리 기능을 향상시킬 수 있습니다. 이 기사에서는 분산 잠금의 개념과 원리를 소개하고 코드 예제를 통해 PHP 애플리케이션에서 분산 잠금을 사용하는 방법을 보여줍니다. 1. 분산 잠금의 개념과 원리를 이해할 수 있습니다.

PHP 백엔드 API 개발에서 높은 동시성과 높은 로드를 처리하는 방법 PHP 백엔드 API 개발에서 높은 동시성과 높은 로드를 처리하는 방법 Jun 17, 2023 am 10:12 AM

모바일 인터넷의 급속한 발전으로 인해 더 많은 애플리케이션이 높은 동시성 및 높은 로드 처리를 지원해야 하며, 오픈 소스 스크립트 언어인 PHP는 특히 인터넷 분야에서 많은 웹사이트 애플리케이션 개발의 주류가 되었습니다. . 그러나 PHP를 API 개발에 사용할 경우 높은 동시성 및 높은 부하를 처리하는 방법을 포함하여 몇 가지 어려움에 직면합니다. 이 문서에서는 이러한 문제를 해결하기 위한 몇 가지 모범 사례를 소개합니다. 1. 수평적 확장(Horizontal Scaling) 수평적 확장은 서버 수를 늘리거나 서버 수를 늘려 높은 동시성 및 부하에 대응하는 일반적인 방법입니다.

See all articles