可以采用數(shù)據(jù)庫(kù)緩存、事務(wù)緩存等技巧。還可以從架構(gòu)上把事務(wù)做合理的分配,花錢(qián)擴(kuò)充你的硬件設(shè)施等。比如,阿里巴巴從最初的1臺(tái)電腦逐步擴(kuò)充到過(guò)萬(wàn)臺(tái)電腦了。
創(chuàng)新互聯(lián)自2013年起,先為竹溪等服務(wù)建站,竹溪等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為竹溪企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
建立數(shù)據(jù)庫(kù)連接池服務(wù),有很多實(shí)現(xiàn)的方式,PHP的話(huà),我推薦使用swoole(PHP的一個(gè)網(wǎng)絡(luò)通訊拓展)來(lái)實(shí)現(xiàn)。
網(wǎng)站頁(yè)面靜態(tài)化。靜態(tài)化的頁(yè)面為.html(.htm等)不需要web服務(wù)器重新加載項(xiàng)解析,只需要生成一次,以后每次都直接下載到客戶(hù)端,效率高很多。將網(wǎng)站的web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、圖片和文件服務(wù)器分開(kāi)。
大數(shù)據(jù)并發(fā)處理解決方案:HTML靜態(tài)化 效率最高、消耗最小的就是純靜態(tài)化的html頁(yè)面,所以盡可能使網(wǎng)站上的頁(yè)面采用靜態(tài)頁(yè)面來(lái)實(shí)現(xiàn),這個(gè)最簡(jiǎn)單的方法其實(shí)也是最有效的方法。
以下是一些總結(jié)的方法: 第一,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量。
架構(gòu)還可以選擇性地使用隊(duì)列,我現(xiàn)在用的beantalkd,Redis也是一個(gè)很好的選擇。
使用緩存,比如memcache,redis,因?yàn)樗鼈兪窃趦?nèi)存中運(yùn)行,所以處理數(shù)據(jù),返回?cái)?shù)據(jù)非??欤钥梢詰?yīng)對(duì)高并發(fā)。
1盡量使用數(shù)字型字段,若只含數(shù)值信息的字段盡量不要設(shè)計(jì)為字符型,這會(huì)降低查詢(xún)和連接的性能,并會(huì)增加存儲(chǔ)開(kāi)銷(xiāo)。這是因?yàn)橐嬖谔幚聿樵?xún)和連接時(shí)會(huì) 逐個(gè)比較字符串中每一個(gè)字符,而對(duì)于數(shù)字型而言只需要比較一次就夠了。
這樣的結(jié)果就是PHP程序消耗較少的內(nèi)存,但卻增加了數(shù)據(jù)庫(kù)服務(wù)器的壓力,因?yàn)閿?shù)據(jù)庫(kù)會(huì)一直等待PHP來(lái)取數(shù)據(jù),一直到數(shù)據(jù)全部取完。很顯然,緩沖查詢(xún)模式適用于小數(shù)據(jù)量查詢(xún),而非緩沖查詢(xún)適應(yīng)于大數(shù)據(jù)量查詢(xún)。
可以采用MQ,首先將task丟進(jìn)Q里面,然后給出用戶(hù)提示,前臺(tái)頁(yè)面輪詢(xún)后臺(tái)結(jié)果。如果數(shù)據(jù)量過(guò)大建議分批處理,拆分成多個(gè)task即可。
來(lái)個(gè)100人同時(shí)點(diǎn),你要用的是普通的虛擬機(jī)就不行了。最好是換種方式實(shí)現(xiàn),不要通過(guò)網(wǎng)頁(yè)進(jìn)行采集。可以非常簡(jiǎn)單的在數(shù)據(jù)庫(kù)的表,創(chuàng)建一個(gè)采集隊(duì)列,后臺(tái)執(zhí)行一個(gè)crontab的計(jì)劃任務(wù),去完成隊(duì)列里的采集任務(wù)。
1、這個(gè)意味著PHP腳本使用了過(guò)多的內(nèi)存,并超出了系統(tǒng)對(duì)其設(shè)置的允許最大內(nèi)存。解決這個(gè)問(wèn)題,首先需要查看你的程序是否分配了過(guò)多的內(nèi)存,在程序沒(méi)有問(wèn)題的情況下,你可以通過(guò)一下方法來(lái)增加PHP的內(nèi)存限制(memory_limit)。
2、我給你個(gè)思路,利用游覽器的刷新機(jī)制,每執(zhí)行10秒刷新一下自動(dòng)更新下一串?dāng)?shù)據(jù),一串多少數(shù)據(jù),看你的SQL效率而定。就這樣一直刷新更新,到結(jié)束為止。
3、你用網(wǎng)頁(yè)的方式,讓人點(diǎn)擊,服務(wù)器采集,簡(jiǎn)直是弱爆了。每個(gè)人的點(diǎn)擊循環(huán)1000次,來(lái)個(gè)100人同時(shí)點(diǎn),你要用的是普通的虛擬機(jī)就不行了。最好是換種方式實(shí)現(xiàn),不要通過(guò)網(wǎng)頁(yè)進(jìn)行采集。
4、而且如果使用mysql的話(huà),它也有一個(gè)超時(shí)時(shí)間,運(yùn)行一串代碼時(shí)間如果超過(guò)配置文件的時(shí)間,會(huì)被中斷不運(yùn)行。第一種你可以修改php配置文件timeout的運(yùn)行時(shí)間,第二你可以分批處理大量數(shù)據(jù),注意是分批處理,就OK了。
5、使用緩存,比如memcache,redis,因?yàn)樗鼈兪窃趦?nèi)存中運(yùn)行,所以處理數(shù)據(jù),返回?cái)?shù)據(jù)非常快,所以可以應(yīng)對(duì)高并發(fā)。
網(wǎng)頁(yè)名稱(chēng):php處理大數(shù)據(jù)架構(gòu)6 php yield 處理大數(shù)據(jù)
轉(zhuǎn)載來(lái)源:http://www.rwnh.cn/article6/dcdeeog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、域名注冊(cè)、企業(yè)建站、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容