Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial 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调用数据库,是只引用一次,所有用户都用的这一个,还是每个人都是独立的呢?

每个人都是独立的

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

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

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erreicht die Golang-Framework-Architektur eine Verarbeitung mit hoher Parallelität? Wie erreicht die Golang-Framework-Architektur eine Verarbeitung mit hoher Parallelität? Jun 02, 2024 am 09:36 AM

In der Go-Framework-Architektur sind die wichtigsten Strategien zur Verbesserung der Verarbeitungsfähigkeiten bei hoher Parallelität: Nutzung des leichtgewichtigen Parallelitätsmechanismus von Goroutine, um Aufgaben parallel auszuführen und die CPU-Auslastung zu verbessern. Verwenden Sie gleichzeitige Kanäle für einen sicheren und effizienten Datenaustausch zwischen Coroutinen, um Datenkonsistenz und Parallelität sicherzustellen. Implementieren Sie einen asynchronen Verarbeitungsmechanismus, um zeitaufwändige Aufgaben zur Ausführung in den Hintergrund zu verlagern, um das Blockieren von Anfrageantworten zu vermeiden und die Antwortmöglichkeiten zu verbessern.

Hohe Parallelitätsverarbeitung und Anforderungsantwortoptimierungsfähigkeiten des Nginx-Servers Hohe Parallelitätsverarbeitung und Anforderungsantwortoptimierungsfähigkeiten des Nginx-Servers Aug 04, 2023 pm 08:37 PM

Die hohe Parallelitätsverarbeitung und die Fähigkeit zur Anforderungsantwortoptimierung des Nginx-Servers Im heutigen Internetzeitalter wirken sich die hohe Parallelitätsverarbeitung und die Anforderungsantwortgeschwindigkeit der Website direkt auf die Benutzererfahrung aus. Als leistungsstarke, multifunktionale Serversoftware kann Nginx uns dabei helfen, eine hohe Parallelitätsverarbeitung und eine Optimierung der Anforderungsantwort zu erreichen. In diesem Artikel werden mehrere gängige Techniken und Codebeispiele vorgestellt, um den Lesern ein besseres Verständnis dafür zu vermitteln, wie Nginx verwendet wird, um eine Verarbeitung mit hoher Parallelität und eine Optimierung der Anforderungsantwort zu erreichen. 1. Verwendung des Reverse-Proxys Die Reverse-Proxy-Funktion von Nginx kann uns helfen

PHP und SQLite: Umgang mit Big Data und hoher Parallelität PHP und SQLite: Umgang mit Big Data und hoher Parallelität Jul 28, 2023 am 11:25 AM

PHP und SQLite: Umgang mit Big Data und hoher Parallelität Im heutigen Internetzeitalter sind der Umgang mit Big Data und hoher Parallelität häufige Herausforderungen für Entwickler. PHP ist eine sehr beliebte serverseitige Skriptsprache und SQLite ist eine leichtgewichtige eingebettete Datenbank. Ihre Kombination kann eine effiziente und skalierbare Lösung bieten. In diesem Artikel wird die Verwendung von PHP und SQLite für den Umgang mit großen Datenmengen und hoher Parallelität vorgestellt und relevante Codebeispiele angehängt. 1. Verarbeitung großer Datenmengen Wenn wir große Datenmengen verarbeiten müssen, sagt S

So verwenden Sie die Caching-Technologie, um PHP-Probleme bei der Verarbeitung hoher Parallelität zu lösen So verwenden Sie die Caching-Technologie, um PHP-Probleme bei der Verarbeitung hoher Parallelität zu lösen Aug 10, 2023 pm 01:30 PM

Wie man die Caching-Technologie nutzt, um das Problem der Verarbeitung mit hoher Parallelität in PHP zu lösen. Aufgrund der rasanten Entwicklung des Internets sind heutige Websites und Anwendungen mit immer mehr gleichzeitigen Besuchen konfrontiert. Wenn eine große Anzahl von Benutzern gleichzeitig auf eine PHP-Website zugreift, kann die herkömmliche PHP-Skriptausführungsmethode dazu führen, dass die Serverleistung abnimmt, die Antwortzeit länger wird und es sogar zu einem Absturz kommt. Um dieses Problem zu lösen, können wir die Caching-Technologie verwenden, um die gleichzeitigen Verarbeitungsfähigkeiten der PHP-Website zu verbessern. Was ist Caching-Technologie? Bei der Caching-Technologie werden einige häufig aufgerufene Daten vorübergehend gespeichert

Verarbeitungstechnologie mit hoher Parallelität zur Entwicklung einer Echtzeit-Chat-Funktion in PHP Verarbeitungstechnologie mit hoher Parallelität zur Entwicklung einer Echtzeit-Chat-Funktion in PHP Aug 26, 2023 pm 07:49 PM

Hochparallele Verarbeitungstechnologie für die PHP-Entwicklung der Echtzeit-Chat-Funktion Mit der Entwicklung des Internets ist die Echtzeit-Chat-Funktion nach und nach zu einem wichtigen Bestandteil verschiedener Anwendungen geworden. Ob soziale Medien, E-Commerce-Plattformen oder Online-Kundenservice: Echtzeit-Chat-Funktionen mit hoher Parallelität müssen implementiert werden, um den Benutzeranforderungen gerecht zu werden. In diesem Artikel wird die Verarbeitungstechnologie mit hoher Parallelität für die Entwicklung von Echtzeit-Chat-Funktionen mit PHP vorgestellt und entsprechende Codebeispiele gegeben. 1. Verwenden Sie die Technologie für lange Verbindungen. Ein Merkmal der Echtzeit-Chat-Funktion besteht darin, dass Nachrichten in Echtzeit an Online-Benutzer gesendet werden müssen. In der traditionellen Webentwicklung

Verwendung der Swoole-Erweiterung in PHP, um eine Verarbeitung mit hoher Parallelität zu erreichen Verwendung der Swoole-Erweiterung in PHP, um eine Verarbeitung mit hoher Parallelität zu erreichen Jun 25, 2023 pm 02:30 PM

Da sich das Internet weiterentwickelt, gibt es immer mehr Websites und Webanwendungen unterschiedlicher Art. Derzeit ist der Umgang mit hoher Parallelität zu einem unvermeidlichen Problem geworden. Hohe Parallelität ist nicht nur ein Problem großer Besuche, sondern auch das Problem, dass mehrere Anfragen gleichzeitig initiiert werden. Bei Webanwendungen bedeutet die Fähigkeit, mehrere Anforderungen zu verarbeiten, auch die Fähigkeit, gleichzeitig zu verarbeiten. In PHP bietet die Swoole-Erweiterung ein hervorragendes Modell für die Verarbeitung hoher gleichzeitiger Anforderungen. Die Swoole-Erweiterung ist Open Source und ähnelt einer Erweiterung der PHP-Sprache.

Umgang mit hoher Parallelität und hoher Last bei der PHP-Backend-API-Entwicklung Umgang mit hoher Parallelität und hoher Last bei der PHP-Backend-API-Entwicklung Jun 17, 2023 am 10:12 AM

Mit der rasanten Entwicklung des mobilen Internets müssen immer mehr Anwendungen eine hohe Parallelität und Verarbeitung mit hoher Last unterstützen, und PHP ist als Open-Source-Skriptsprache zum Mainstream für die Entwicklung vieler Website-Anwendungen geworden, insbesondere im Internetbereich . Wenn PHP jedoch für die API-Entwicklung verwendet wird, stößt es auf einige Schwierigkeiten, einschließlich des Umgangs mit hoher Parallelität und hoher Last. In diesem Artikel werden einige Best Practices für den Umgang mit diesen Problemen vorgestellt. 1. Horizontale Skalierung Die horizontale Skalierung ist eine gängige Methode, um auf hohe Parallelität und Auslastung zu reagieren, indem die Anzahl der Server erhöht wird

So verwenden Sie verteilte Sperren, um die Verarbeitungsfunktionen von PHP für hohe Parallelität zu verbessern So verwenden Sie verteilte Sperren, um die Verarbeitungsfunktionen von PHP für hohe Parallelität zu verbessern Aug 13, 2023 pm 03:51 PM

So verwenden Sie verteilte Sperren, um die Verarbeitungsfähigkeiten von PHP mit hoher Parallelität zu verbessern. In heutigen Internetanwendungen sind die Verarbeitungsfähigkeiten mit hoher Parallelität ein zentrales Thema. Da die Anzahl der Benutzer zunimmt und das Unternehmen expandiert, ist die effektive Handhabung gleichzeitiger Anfragen zu einer Herausforderung geworden, die jeder Entwickler lösen muss. In PHP-Anwendungen können wir verteilte Sperren verwenden, um die hohe gleichzeitige Verarbeitungsfähigkeit des Systems zu verbessern. In diesem Artikel werden das Konzept und das Prinzip verteilter Sperren vorgestellt und anhand von Codebeispielen gezeigt, wie verteilte Sperren in PHP-Anwendungen verwendet werden. 1. Das Konzept und Prinzip verteilter Sperren Verteilte Sperren können verstanden werden

See all articles