Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel 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调用数据库,是只引用一次,所有用户都用的这一个,还是每个人都是独立的呢?

每个人都是独立的

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

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

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment l'architecture du framework Golang permet-elle un traitement à haute concurrence ? Comment l'architecture du framework Golang permet-elle un traitement à haute concurrence ? Jun 02, 2024 am 09:36 AM

Dans l'architecture du framework Go, les stratégies clés pour améliorer les capacités de traitement à haute concurrence sont les suivantes : utiliser le mécanisme de concurrence léger de Goroutine pour exécuter des tâches en parallèle et améliorer l'utilisation du processeur. Utilisez des canaux simultanés pour un échange de données sûr et efficace entre les coroutines afin de garantir la cohérence et la simultanéité des données. Implémentez un mécanisme de traitement asynchrone pour déplacer les tâches fastidieuses en arrière-plan pour exécution afin d'éviter de bloquer les réponses aux demandes et d'améliorer les capacités de réponse.

Compétences élevées en matière de traitement simultané et d'optimisation des réponses aux demandes du serveur Nginx Compétences élevées en matière de traitement simultané et d'optimisation des réponses aux demandes du serveur Nginx Aug 04, 2023 pm 08:37 PM

Compétences élevées de traitement simultané et d'optimisation des réponses aux demandes du serveur Nginx À l'ère d'Internet d'aujourd'hui, le traitement simultané élevé du site Web et la vitesse de réponse aux demandes affectent directement l'expérience utilisateur. En tant que logiciel serveur multifonctionnel hautes performances, Nginx peut nous aider à atteindre un traitement hautement simultané et à optimiser les réponses aux demandes. Cet article présentera plusieurs techniques courantes et exemples de code pour aider les lecteurs à mieux comprendre comment utiliser Nginx pour obtenir un traitement à haute concurrence et une optimisation des réponses aux demandes. 1. Utiliser le proxy inverse La fonction de proxy inverse de Nginx peut nous aider

PHP et SQLite : comment gérer le Big Data et la concurrence élevée PHP et SQLite : comment gérer le Big Data et la concurrence élevée Jul 28, 2023 am 11:25 AM

PHP et SQLite : Comment gérer le Big Data et la concurrence élevée À l'ère d'Internet d'aujourd'hui, la gestion du Big Data et la concurrence élevée sont des défis courants auxquels sont confrontés les développeurs. PHP est un langage de script côté serveur très populaire et SQLite est une base de données embarquée légère. Leur combinaison peut fournir une solution efficace et évolutive. Cet article expliquera comment utiliser PHP et SQLite pour gérer le Big Data et la concurrence élevée, et joindra des exemples de code pertinents. 1. Traitement du Big Data Lorsque nous devons traiter une grande quantité de données, S

Comment utiliser la technologie de mise en cache pour résoudre les problèmes de traitement PHP à haute concurrence Comment utiliser la technologie de mise en cache pour résoudre les problèmes de traitement PHP à haute concurrence Aug 10, 2023 pm 01:30 PM

Comment utiliser la technologie de mise en cache pour résoudre le problème du traitement hautement simultané en PHP En raison du développement rapide d'Internet, les sites Web et les applications d'aujourd'hui sont confrontés à un nombre croissant de visites simultanées. Lorsqu'un grand nombre d'utilisateurs accèdent à un site Web PHP en même temps, la méthode traditionnelle d'exécution de script PHP peut entraîner une diminution des performances du serveur, un allongement du temps de réponse et même un crash. Afin de résoudre ce problème, nous pouvons utiliser la technologie de mise en cache pour améliorer les capacités de traitement simultané du site Web PHP. Qu’est-ce que la technologie de mise en cache ? La technologie de mise en cache consiste à stocker temporairement certaines données fréquemment consultées

Technologie de traitement à haute concurrence pour développer une fonction de chat en temps réel en PHP Technologie de traitement à haute concurrence pour développer une fonction de chat en temps réel en PHP Aug 26, 2023 pm 07:49 PM

Technologie de traitement à haute concurrence pour le développement PHP de la fonction de chat en temps réel Avec le développement d'Internet, la fonction de chat en temps réel est progressivement devenue une partie importante de diverses applications. Qu’il s’agisse des réseaux sociaux, des plateformes de commerce électronique ou du service client en ligne, des fonctions de chat en temps réel à haute concurrence doivent être mises en œuvre pour répondre aux besoins des utilisateurs. Cet article présentera la technologie de traitement à haute concurrence pour développer des fonctions de chat en temps réel à l'aide de PHP et donnera des exemples de code correspondants. 1. Utiliser une technologie de connexion longue L'une des caractéristiques de la fonction de chat en temps réel est qu'elle doit transmettre des messages aux utilisateurs en ligne en temps réel. Dans le développement Web traditionnel,

Utilisation de l'extension swoole en PHP pour obtenir un traitement à haute concurrence Utilisation de l'extension swoole en PHP pour obtenir un traitement à haute concurrence Jun 25, 2023 pm 02:30 PM

À mesure qu’Internet continue de se développer, il existe de plus en plus de sites Web et d’applications Web de différents types. À l’heure actuelle, gérer une concurrence élevée est devenu un problème inévitable. La concurrence élevée n'est pas seulement un problème de visites volumineuses, mais également le problème de plusieurs requêtes lancées en même temps. Pour les applications Web, la capacité à gérer plusieurs requêtes signifie également la possibilité de les traiter simultanément. En PHP, l'extension swoole fournit un très excellent modèle pour gérer un nombre élevé de requêtes simultanées. L'extension Swoole est open source et s'apparente à une extension du langage PHP.

Comment gérer une concurrence élevée et une charge élevée dans le développement d'API backend PHP Comment gérer une concurrence élevée et une charge élevée dans le développement d'API backend PHP Jun 17, 2023 am 10:12 AM

Avec le développement rapide de l'Internet mobile, de plus en plus d'applications doivent prendre en charge une concurrence élevée et un traitement à charge élevée, et PHP, en tant que langage de script open source, est devenu le courant dominant dans le développement de nombreuses applications de sites Web, en particulier dans le domaine Internet. . Cependant, lorsque PHP est utilisé pour le développement d’API, il se heurte à certaines difficultés, notamment sur la manière de gérer une concurrence élevée et une charge élevée. Cet article présentera quelques bonnes pratiques pour résoudre ces problèmes. 1. Mise à l'échelle horizontale La mise à l'échelle horizontale est une méthode courante pour répondre à une concurrence et une charge élevées en augmentant le nombre de serveurs ou

Comment utiliser les verrous distribués pour améliorer les capacités de traitement à haute concurrence de PHP Comment utiliser les verrous distribués pour améliorer les capacités de traitement à haute concurrence de PHP Aug 13, 2023 pm 03:51 PM

Comment utiliser les verrous distribués pour améliorer les capacités de traitement à haute concurrence de PHP. Dans les applications Internet actuelles, les capacités de traitement à haute concurrence sont un problème clé. À mesure que le nombre d'utilisateurs augmente et que l'activité se développe, la gestion efficace des demandes simultanées est devenue un défi que chaque développeur doit résoudre. Dans les applications PHP, nous pouvons utiliser des verrous distribués pour améliorer les capacités élevées de traitement simultané du système. Cet article présentera le concept et le principe des verrous distribués et montrera comment utiliser les verrous distribués dans les applications PHP à travers des exemples de code. 1. Le concept et le principe des verrous distribués Les verrous distribués peuvent être compris

See all articles