-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
php為什么不能做大型網(wǎng)站(php為什么不能做大型網(wǎng)站軟件)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于php為什么不能做大型網(wǎng)站的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、最近想用php+mysql寫一個(gè)大型網(wǎng)站 不知道數(shù)據(jù)量大了怎么處理還沒開始做 這些問題要考慮進(jìn)去 很糾結(jié)
可以,thinkphp的性能在php框架中屬于比較不錯(cuò)的~
當(dāng)然,實(shí)際的情況還是取決于你的數(shù)據(jù)庫設(shè)計(jì),程序架構(gòu)設(shè)計(jì).比如使用memcache之類的優(yōu)化數(shù)據(jù)庫操作等等
使用框架的好處是顯而易見的,會(huì)讓你的開發(fā)更加規(guī)范化,非常有利于后期維護(hù).實(shí)際框架帶來的性能消耗比你想的要小,收益卻大很多
二、為什么大型網(wǎng)站前端使用 PHP 后臺(tái)邏輯用 Java
從這幾個(gè)方面看
一、運(yùn)行機(jī)制:
Java代碼被編譯成字節(jié)碼后,會(huì)在虛擬機(jī)里由JIT進(jìn)行二次編譯成為本地碼,據(jù)傳言其執(zhí)行速度可以和C++相媲美,經(jīng)過我自己測(cè)試,用Java實(shí)現(xiàn)一個(gè)簡單的Memcache協(xié)議的緩存服務(wù)器,在Java 1.6下運(yùn)行,和memcache本身相比,同樣數(shù)據(jù)量的存取時(shí)間比大概是3:2,雖然有差距,但是比想象的要好很多。Java 1.7在JIT方面做了大量的改進(jìn),性能比Java 1.6還要好。
PHP是直接對(duì)文本代碼進(jìn)行解釋執(zhí)行,即便有opcode緩存技術(shù),仍然有不可逾越的性能鴻溝。PHP的opcode類似于java的class字節(jié)碼,仍是解釋執(zhí)行。
二、處理并發(fā):
Java在并發(fā)處理上采取單進(jìn)程多線程的方式,web應(yīng)用會(huì)隨著web server的啟動(dòng)而啟動(dòng),而來自web 瀏覽器的請(qǐng)求將被分配給線程池內(nèi)的閑置線程處理,也就是說當(dāng)有請(qǐng)求到達(dá)的時(shí)候,進(jìn)程是準(zhǔn)備好的,線程是準(zhǔn)備好的,Java要做的僅僅是業(yè)務(wù)邏輯處理了。
PHP在并發(fā)處理上時(shí)采取多進(jìn)程的方式,在web server里沒有物理的web應(yīng)用概念,每個(gè)請(qǐng)求都相當(dāng)于一個(gè)獨(dú)立的應(yīng)用,而進(jìn)程也隨著請(qǐng)求的到達(dá)才啟動(dòng),而隨著請(qǐng)求的結(jié)束而消亡。在Fast CGI環(huán)境下,有類似于線程池的進(jìn)程池技術(shù),對(duì)性能提高有很大的幫助。然而一方面web server和Fast cgi通訊仍需要通過socket,多出了一定的IO損耗,另一方面進(jìn)程池內(nèi)的進(jìn)程間也很難進(jìn)行通訊,所以在并發(fā)處理上仍然無法和Java相比。
三、數(shù)據(jù)庫應(yīng)用:
Java可以采用數(shù)據(jù)庫連接池技術(shù),節(jié)省下數(shù)據(jù)庫連接過程帶來的時(shí)間損失。
PHP沒有這個(gè)好處,原因來自上面的第二條。
在數(shù)據(jù)庫接口上java有JDBC,PHP有PDO,這兩個(gè)很類似。然而Java有非常多的ORM技術(shù)框架(如Hibernate)使數(shù)據(jù)庫操作變得異常簡單,而PHP的運(yùn)行方式?jīng)Q定了它是ORM的禁區(qū)(當(dāng)然也可以做ORM,只是做到什么程度是由你對(duì)ORM帶來的性能損耗的忍受程度決定的)。
四、緩存技術(shù)
Java是單進(jìn)程,很多緩存可以直接在Java的heap中做,而無需借助外在的工具,當(dāng)然也有很好的緩存框架,比如Ehcache,因?yàn)闆]有網(wǎng)絡(luò)IO,所以性能非常高。
PHP多進(jìn)程單線程決定了它只能借助外來的緩存服務(wù)器,比如Memcache.
五、熱部署
Java的熱部署能力很弱,如果希望修個(gè)BUG而不停服是很難做到的。
PHP天然熱部署。
現(xiàn)在明白為什么后臺(tái)邏輯用java了吧
三、為什么大公司都不要PHP
大型項(xiàng)目很少用到php,或者說php只是做前臺(tái)用,后臺(tái)多是用的java,java性能和可靠性比php強(qiáng),沒辦法,那個(gè)好用那個(gè)唄,但是php還是有強(qiáng)項(xiàng)的,簡單易上手,而且全部免費(fèi),用的人也多
四、PHP到底能不能做大型項(xiàng)目
普遍的都是中小項(xiàng)目。但是現(xiàn)在各種開發(fā)框架的成熟,如zendframework,symfony等大型開發(fā)框家的產(chǎn)生,要開發(fā)企業(yè)應(yīng)用也不是問題。
主要看自己需要,普通開發(fā)就面向過程,大型開發(fā)面向?qū)ο?,你做作業(yè)還是簡單點(diǎn)的吧。比如寫一個(gè)學(xué)生成績管理,圖書管借書什么的項(xiàng)目(包括分類,書目,檢索,借書記錄)...很多的。
以上就是關(guān)于php為什么不能做大型網(wǎng)站相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
iphone11下拉菜單拉不出來(iphone11下拉菜單怎么沒了)
iphone安裝chatGPT(IPhone安裝應(yīng)用怎么不用密碼)_1
上海市政景觀設(shè)計(jì)導(dǎo)則(上海市政景觀院)