那就用sphinx 技術(shù),目前這個是最好的,沒有之一。
網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù)團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時竭誠為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個網(wǎng)站當(dāng)做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!
下面是我百度百科弄過來的,怎么使用還得你自己看白皮書了。
Sphinx的主要特性包括:
高速索引 (在新款CPU上,近10 MB/秒);
高速搜索 (2-4G的文本量中平均查詢速度不到0.1秒);
高可用性 (單CPU上最大可支持100 GB的文本,100M文檔);
提供良好的相關(guān)性排名
支持分布式搜索;
提供文檔摘要生成;
提供從MySQL內(nèi)部的插件式存儲引擎上搜索
支持布爾,短語, 和近義詞查詢;
支持每個文檔多個全文檢索域(默認(rèn)最大32個);
支持每個文檔多屬性;
支持?jǐn)嘣~;
支持單字節(jié)編碼與UTF-8編碼。[1]
可以實現(xiàn).
將數(shù)據(jù)庫放在不同的服務(wù)器上,主頁的不同模塊可以單獨訪問自己所需要的數(shù)據(jù)庫,以減輕單獨一個服務(wù)器的壓力.
既可以每個模塊都是不同數(shù)據(jù)庫,也可以同個模塊不同數(shù)據(jù)庫,但這樣沒什么意思.
實際上,現(xiàn)在網(wǎng)絡(luò)帶寬大,服務(wù)器性能也好,再加以磁盤陣列保證數(shù)據(jù).如果吞吐量大得驚人,沒必要用分布式的,必竟維護比較麻煩.
象很多網(wǎng)絡(luò)游戲在線人數(shù)那么多,或者象天涯貓撲那樣,才需要用分布式,普通網(wǎng)站就幾乎都用集中式的.
大型分布式架構(gòu)都是靠多種語言和工具共同分工合作實現(xiàn)的。
不是一兩種工具或者語言能實現(xiàn)的,如果專指php那是沒有意義的,因為php本身只是一個單進程的東東,更別說分布式。
大規(guī)模的web應(yīng)用以及分布式架構(gòu)主要在于服務(wù)器的整體架構(gòu):
1、web服務(wù)集群;
2、數(shù)據(jù)庫集群;
3、分布式緩存;
php充其量只是實現(xiàn)其中一個節(jié)點的某個具體的web應(yīng)用。
SD框架支持長連接協(xié)議TCP,WebSocket,短連接協(xié)議HTTP,以及UDP。
通過配置開放不同的端口開發(fā)者可以輕松管理不同的協(xié)議,并且可以共用一套業(yè)務(wù)代碼,當(dāng)然你可以通過智能路由進行代碼的隔離。
長連接可以配置不同的數(shù)據(jù)傳輸協(xié)議,比如二進制協(xié)議文本協(xié)議等等,通過框架提供的封裝器解包器接口可以自定義各種各種的協(xié)議封裝,并且各種協(xié)議之間可以自動轉(zhuǎn)換,比如你通過廣播發(fā)送一個信息,該信息流向不同客戶端,客戶端間采用不同協(xié)議,那么框架會根據(jù)不同的端口自動轉(zhuǎn)換不同的協(xié)議封裝。
也可以通過Http給所有長連接客戶端發(fā)送推送消息,類似這種混合協(xié)議協(xié)作的業(yè)務(wù)在SD框架上會異常簡單。
擴展資料:
普通的Web開發(fā),常用的模式就是用戶登錄之后,登錄狀態(tài)信息保存在Session中,用戶一些常用的熱數(shù)據(jù)保存在文件緩存中,用戶上傳的附件信息保存在Web服務(wù)器的某個目錄上。這種方式對于一般的Web應(yīng)用,使用很方便,完全能夠勝任。但是對于高并發(fā)的企業(yè)級網(wǎng)站,就應(yīng)付不了了。需要采用Web集群實現(xiàn)負載均衡。
使用Web集群方式部署之后,首要調(diào)整的就是用戶狀態(tài)信息與附件信息。用戶狀態(tài)不能再保存到Session中,緩存也不能用本地Web服務(wù)器的文件緩存,以及附件,也不能保存在Web服務(wù)器上了。因為要保證集群里面的各個Web服務(wù)器,狀態(tài)完全一致。
因此,需要將用戶狀態(tài)、緩存等保存到專用的緩存服務(wù)器,比如Memcache。附件需要保存到云存儲中,比如七牛云存儲、阿里云存儲、騰訊云存儲等。
SD框架內(nèi)大多數(shù)的對象都使用了對象池技術(shù),對象池技術(shù)有利于系統(tǒng)內(nèi)存的穩(wěn)定,減少GC的次數(shù),提高系統(tǒng)的運行效率,事實證明對象池對系統(tǒng)穩(wěn)定做出了極大的貢獻。
開發(fā)者也可以使用這一套對象池技術(shù),增加對對象的復(fù)用,減少GC和NEW的頻率,對系統(tǒng)毛刺現(xiàn)象和內(nèi)存泄露方面都有很大的穩(wěn)定性提升。
參考資料:百度百科-php
當(dāng)前做分布式的廠商有幾家,我知道比較出名的有“華為云分布式數(shù)據(jù)庫DDM”和“阿里云分布式數(shù)據(jù)庫”,感興趣可以自行搜素了解下。
分布式數(shù)據(jù)庫的幾點概念可以了解一下。
數(shù)據(jù)分庫:
以表為單位,把原有數(shù)據(jù)庫切分成多個數(shù)據(jù)庫。切分后不同的表存儲在不同的數(shù)據(jù)庫上。
以表中的數(shù)據(jù)行記錄為單位,把原有邏輯數(shù)據(jù)庫切分成多個物理數(shù)據(jù)庫分片,表數(shù)據(jù)記錄分布存儲在各個分片上。
路由分發(fā):
在分布式數(shù)據(jù)庫中,路由的作用即將SQL語句進行解析,并轉(zhuǎn)發(fā)到正確的分片上,保證SQL執(zhí)行后得到正確的結(jié)果,并且節(jié)約QPS資源。
讀寫分離:
數(shù)據(jù)庫中對計算和緩存資源消耗較多的往往是密集或復(fù)雜的SQL查詢。當(dāng)系統(tǒng)資源被查詢語句消耗,反過來會影響數(shù)據(jù)寫入操作,進而導(dǎo)致數(shù)據(jù)庫整體性能下降,響應(yīng)緩慢。因此,當(dāng)數(shù)據(jù)庫CPU和內(nèi)存資源占用居高不下,且讀寫比例較高時,可以為數(shù)據(jù)庫添加只讀數(shù)據(jù)庫。
我的理解,分布式緩存系統(tǒng)是為了解決數(shù)據(jù)庫服務(wù)器和web服務(wù)器之間的瓶頸。
如果一個網(wǎng)站的流量很大,這個瓶頸將會非常明顯,每次數(shù)據(jù)庫查詢耗費的時間將會非常可觀。
對于更新速度不是很快的網(wǎng)站,我們可以用靜態(tài)化來避免過多的數(shù)據(jù)庫查詢。
對于更新速度以秒計的網(wǎng)站,靜態(tài)化也不會太理想,可以用緩存系統(tǒng)來構(gòu)建。
如果只是單臺服務(wù)器用作緩存,問題不會太復(fù)雜,如果有多臺服務(wù)器用作緩存,就要考慮緩存服務(wù)器的負載均衡。
當(dāng)前題目:php分布式數(shù)據(jù)庫查詢,php怎么查詢數(shù)據(jù)庫
鏈接地址:http://vcdvsql.cn/article18/hsjhdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、小程序開發(fā)、自適應(yīng)網(wǎng)站、外貿(mào)建站、軟件開發(fā)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)