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调用数据库,是只引用一次,所有用户都用的这一个,还是每个人都是独立的呢?
每个人都是独立的
你可以试试 单例模式, 把结果存在静态变量中试试
如果查询的量非常大,而数据又不是实时的可以做缓存来处理.但是如果数据又要是实时的 我觉得先找出瓶颈在什么地方,普通的索引等优化这些都是基础。
谢谢大家,用临时表做缓存解决了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在Go框架架構中,提升高同時處理能力的關鍵策略有:利用協程(Goroutine)的輕量級並發機制,並行執行任務,提升CPU利用率。運用並發頻道進行協程間安全且有效率的資料交換,保障資料一致性與並發性。實作非同步處理機制,將耗時任務移至背景執行,避免阻塞請求回應,提升回應能力。

Nginx伺服器的高並發處理和請求回應優化技巧在當今互聯網時代,網站的高並發處理和請求響應速度直接影響著用戶的體驗。而Nginx作為一款高效能、多功能的伺服器軟體,能夠幫助我們實現高並發處理和請求回應最佳化。本文將介紹幾種常用的技巧和程式碼範例,幫助讀者更了解如何利用Nginx實現高並發處理和請求回應最佳化。一、使用反向代理Nginx的反向代理功能可以幫助我們

PHP和SQLite:如何處理大數據和高並發在當今的網路時代,處理大數據和高並發是開發者面臨的常見挑戰。 PHP作為一種非常流行的伺服器端腳本語言,SQLite作為一種輕量級的嵌入式資料庫,它們的結合可以提供一個高效且可擴展的解決方案。本文將介紹如何使用PHP和SQLite來處理大數據和高並發,並附上相關程式碼範例。一、處理大數據當我們需要處理大量資料時,S

如何利用快取技術解決PHP高並發處理問題由於網路的快速發展,如今的網站和應用程式面臨越來越高的並發訪問量。當面對大量使用者同時造訪一個PHP網站時,傳統的PHP腳本執行方式可能會導致伺服器效能下降,回應時間變長,甚至產生崩潰的情況。為了解決這個問題,我們可以採用快取技術來提升PHP網站的同時處理能力。什麼是緩存技術?快取技術是將一些經常被存取的資料暫時存儲

隨著網路的不斷發展,各種類型的網站和Web應用程式也越來越多。這時候,處理高並發成為了一個不可避免的問題。高並發不只是訪問量大的問題,還要處理多個請求同時發起的問題。對Web應用程式來說,處理多個請求的能力也就是並發處理的能力。在PHP中,swoole擴充功能提供了一個非常優秀的模型來處理高並發請求。 Swoole擴展是開源的,類似於PHP語言的一個擴展,非

如何利用分散式鎖定提升PHP高並發處理能力在當今網路應用中,高並發處理能力是關鍵問題。隨著用戶數量的成長和業務的擴展,如何有效地處理並發請求成了每個開發者必須解決的挑戰。在PHP應用中,我們可以利用分散式鎖定來提升系統的高並發處理能力。本文將介紹分散式鎖的概念、原理,並透過程式碼範例展示如何在PHP應用中使用分散式鎖。一、分散式鎖的概念和原理分散式鎖可以理解

使用Node.js和Redis建立線上投票應用:如何處理高並發隨著互聯網的發展,越來越多的應用需要處理高並發的情況。線上投票應用程式是一種典型的高並發場景,用戶在短時間內提交大量的投票請求,應用程式需要能夠快速處理這些請求並保持資料一致性。本文將介紹如何使用Node.js和Redis建立一個高並發的線上投票應用。 Redis簡介Redis是一種基於記憶體的鍵值資料庫,因

隨著行動互聯網的迅速發展,越來越多的應用程式需要支援高並發和高負載的處理,而PHP作為一種開源的腳本語言,已經成為了許多網站應用開發的主流,尤其是在互聯網領域中。然而,當PHP被用於API開發時,它面臨一些困難,包括如何處理高並發和高負載。本篇文章將介紹一些處理這些問題的最佳實務。一、橫向擴展橫向擴展是一種響應高並發和高負載的常見方法,透過增加伺服器數量或
