亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        網(wǎng)上購物系統(tǒng)的實(shí)現(xiàn)及性能優(yōu)化

        2012-04-29 00:44:03徐躍偉
        計算機(jī)時代 2012年1期
        關(guān)鍵詞:性能優(yōu)化電子商務(wù)

        徐躍偉

        摘要采用Apache+PHP+MySQL技術(shù)開發(fā)了一個動態(tài)電子商務(wù)網(wǎng)站,分析了系統(tǒng)的整體框架和功能組成,并在MySQL的優(yōu)化和Memcache的使用萬面提出了系統(tǒng)優(yōu)化的思路。

        關(guān)鍵詞電子商務(wù),PHP,MySQL;Memcache,性能優(yōu)化

        中圖分類號TP391文獻(xiàn)標(biāo)志碼A文章編號:1006-8228(2012)01-08-02

        0引言

        隨著全球信息化的發(fā)展,基于Intemet的電子商務(wù)顯示出了巨大的商業(yè)價值。電子商務(wù)(Electromc Commerce)是在互聯(lián)網(wǎng)Internet環(huán)境下,實(shí)現(xiàn)消費(fèi)者的網(wǎng)上購物、商戶之間的網(wǎng)上交易和在線電子支付的一種商業(yè)運(yùn)營模式,即通過計算機(jī)網(wǎng)絡(luò)進(jìn)行交易或服務(wù)。電子商務(wù)包括B2B(busmess to business)、B2C(busmess to customer)和C2C(customer to customer)三種模式。其中B2C模式是商家與顧客之間進(jìn)行網(wǎng)上交易的一種模式,商家就像一個在網(wǎng)絡(luò)上經(jīng)營的零售商,所有商品通過網(wǎng)絡(luò)直接銷售,從消費(fèi)者上網(wǎng)挑選商品,到購物支付、物流配送,整個過程方便快捷?,F(xiàn)在流行的團(tuán)購、商城都屬于這種模式。

        1開發(fā)工具及總體概述

        網(wǎng)上購物系統(tǒng)運(yùn)行平臺為Windows 2003操作系統(tǒng),Web服務(wù)器軟件為Apache。系統(tǒng)開發(fā)工具前端使用PHP,后臺數(shù)據(jù)庫使用MySQL,網(wǎng)頁設(shè)計工具為Dreamweaver MX。

        APACHE是目前應(yīng)用最廣的Web服務(wù)器之一。當(dāng)前市場上較流行的Web服務(wù)器有Mmmsoft IIS、NetscapeEnterprise、IBM Domino Server+WebSphere等。微軟的IIS是使用多線程方式,IIS基本上還是值得信賴的,但是對于負(fù)荷較大的網(wǎng)站,HS在實(shí)際使用中經(jīng)常出現(xiàn)500錯誤,而且有的時候還會出現(xiàn)莫名其妙的假死現(xiàn)象,用戶需要不定期的重新啟動Ⅱs服務(wù)才能保證網(wǎng)站正常,同時IIS只能用于Wmdows環(huán)境。Apache在配置上比IIS復(fù)雜,不過一經(jīng)設(shè)置完畢就可以長期的工作了。APACHE的所有配置都保存在配置文件中,使用時完全按照配置文件中記錄的信息執(zhí)行。一般不會發(fā)生莫名其妙的假死情況。Apache充分考慮到進(jìn)程帶來的穩(wěn)定性特征,以及線程帶來高效率的特點(diǎn)。它會預(yù)生成多個進(jìn)程,而每個進(jìn)程中使用多個線程提供Web服務(wù)。由于存在多個進(jìn)程,即使一個進(jìn)程死了也不會影響整個Web服務(wù)。對于不支持進(jìn)程的操作系統(tǒng),也可以使用多個線程提供服務(wù),反之也是一樣。然而,只有同時支持線程和進(jìn)程的操作系統(tǒng),才能充分利用Apache帶來的穩(wěn)定性和高負(fù)載能力。

        PHP是一種用來制作動態(tài)網(wǎng)頁的服務(wù)器端腳本語言,它大量借用了c、Java和Perl語言的語法并形成了PHP自己的特性,可以比CGI或者Perl更快地執(zhí)行動態(tài)網(wǎng)頁。通過PHP和HTML創(chuàng)建頁面,當(dāng)訪問者打開網(wǎng)頁時,服務(wù)器端便會處理PHP指令,然后把其處理結(jié)果送到訪問者的瀏覽器上面,與ASP或ColdFumon類似。然而,PHP跟AsP或ColdFuslon不一樣的地方在于,它是跨平臺的開放源代碼。PHP可以在WindowsNT以及很多不同的Umx版本中執(zhí)行。更為重要的是PHP對數(shù)據(jù)庫的操作能力,強(qiáng)大的兼容性使其幾乎可以操作所有的數(shù)據(jù)庫。

        MySQL是一個真正的多用戶、多線程的SQL數(shù)據(jù)庫服務(wù)器,它是—個客戶機(jī)服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn)。MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫中的一種,相比其他的數(shù)據(jù)庫管理系統(tǒng)(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點(diǎn)。MySQL主要目標(biāo)是快速、健壯和易用。關(guān)鍵它是免費(fèi)的,可以在Interact上免費(fèi)下載到,可免費(fèi)使用。MySQL對于一般中小型,甚至大型應(yīng)用都能夠勝任。

        由于這三個軟件均為自由軟件,同時,APACHE、PHP和MySQL的組合還可以跨平臺運(yùn)行,可以在Windows上開發(fā),然后在Unix平臺上運(yùn)行。因此,這三個軟件是架構(gòu)數(shù)據(jù)庫驅(qū)動的動態(tài)網(wǎng)站的絕佳組合。

        2具體功能描述及需求

        2.1系統(tǒng)總體框架

        系統(tǒng)采用標(biāo)準(zhǔn)B/S三層結(jié)構(gòu)開發(fā)。三層結(jié)構(gòu)分別為用戶界面(UI)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,如圖1所示。

        (1)客戶層

        客戶層提供了用戶瀏覽界面,使得用戶可以通過Web瀏覽器與服務(wù)器交互,提交輸入并將服務(wù)器端返回的數(shù)據(jù)呈現(xiàn)給客戶。為了提高用戶體驗(yàn),可以在客尸層使用AJAX技術(shù)。

        (2)邏輯層

        邏輯層負(fù)責(zé)接收Web瀏覽器傳來的請求并將請求傳給數(shù)據(jù)層,同時將請求處理結(jié)果發(fā)給Web 瀏覽器。它由Web表單和組件服務(wù)組成。其中Web表單是向客戶呈現(xiàn)數(shù)據(jù)和信息的基礎(chǔ),也是響應(yīng)和處理客戶信息和數(shù)據(jù)及顯示W(wǎng)eb表單交互生成的信息和數(shù)據(jù)的基礎(chǔ)。

        (3)數(shù)據(jù)層

        通過PHP的mysql擴(kuò)展庫或mysql擴(kuò)展庫操縱數(shù)據(jù),為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù),如存儲數(shù)據(jù)操作結(jié)果、返回數(shù)據(jù)檢索結(jié)果等。

        2.2功能設(shè)計

        本文開發(fā)的網(wǎng)上購物系統(tǒng)主要包括顧客賬戶管理、購物車、在線咨詢等功能模塊,如圖2所示,具體如下。

        (1)顧客賬戶管理。新用戶可以進(jìn)行注冊,已注冊用戶登錄后,可以查看和修改個人信息、下單購買、查詢訂單、修改未付款訂單、對購買的商品發(fā)表評論。

        (2)購物車。顧客選購商品后會顯示購物車界面,顧客可以繼續(xù)購物,或者更改購物數(shù)量、刪除購物記錄、清空購物車等。當(dāng)顧客購物結(jié)束后,選擇在線結(jié)算,系統(tǒng)會顯示登錄界面,如果是新用戶,需要先注冊再登錄,如果是老用戶,直接登錄。顧客登錄后,選擇提交訂單,訂單會被存入數(shù)據(jù)厙,然后選擇付款方式,可以通過郵局匯款或者通過網(wǎng)上銀行支付,商家收到付款后就可以向顧客發(fā)貨了。

        (3)在線咨詢。用于解答顧客的各種常見問題。

        (4)顧客瀏覽統(tǒng)計。顧客點(diǎn)擊商品后,該記錄會保存在數(shù)據(jù)庫中。后臺可顯示顧客測覽過的商品列表,從而發(fā)現(xiàn)顧客比較感興趣的商品。

        (5)后臺商品管理。包括添加商品、修改商品和刪除商品。要注意的是,已經(jīng)有訂單的商品不能破刪除,從而防止訂單數(shù)據(jù)出錯。

        (6)后臺訂單管理。包括訂單的審核、無效訂單的刪除、將汀單記錄導(dǎo)出后進(jìn)行發(fā)貨及銷售統(tǒng)計表。

        (7)后臺銷售統(tǒng)計。統(tǒng)計每天、每周、每月、每季度、全年各類商品的銷售額和總銷售額。

        3性能優(yōu)化

        目前本系統(tǒng)已經(jīng)運(yùn)行了半年多,數(shù)據(jù)厙中的記錄已接近10萬條,最多時同時在線人數(shù)達(dá)200人左右。隨著在線訪問量和數(shù)據(jù)庫中記錄的增加,服務(wù)器的壓力也越來越大,經(jīng)常出現(xiàn)無響應(yīng)的狀態(tài),經(jīng)過以下兩方面的優(yōu)化,速度和穩(wěn)定性均有改善。

        3.1mysql的優(yōu)化

        對于mysql的優(yōu)化,非常重要的是緩存的使用,其中主要有兩種緩存索引緩沖區(qū)和查詢緩沖。

        (1)索引緩沖區(qū)

        索引緩沖區(qū)只對MyISAM表起作用,key_buffer_size指定索

        引緩沖區(qū)的大小,它決定索引處理的速度,尢其是索引讀的速度。一般為16M,對于稍微大一點(diǎn)的站點(diǎn),這個數(shù)字是遠(yuǎn)遠(yuǎn)不夠的,通過檢查狀態(tài)值Key_read_requests和Key_reads,可以知道key_buffer_size設(shè)置是否合理。比例key_reads/key_read_requests應(yīng)該盡可能的低,至少是1100。根據(jù)服務(wù)器配置的內(nèi)存容量(2G)和mysql運(yùn)行狀態(tài)中key_reads/key_read_requests的比值,經(jīng)過多次測試,我們將key buffer_size設(shè)置為128M。

        (2)查詢緩沖

        從401開始,MySQL提供了查詢緩沖機(jī)制。使用查詢緩沖,MySQL將SELECT語句和查詢結(jié)果存放在緩沖區(qū)中,今后對于同樣的SELECT語句,將直接從緩沖區(qū)中讀取結(jié)果。根據(jù)MySQL用戶手冊,使用查詢緩沖最多可以達(dá)到238%的效率。query_cache_size用于設(shè)置查詢緩沖的大小,通過查看以下幾個參數(shù)可以知道query cache_stze設(shè)置的是否合理

        Qcachemts、Qcache hrts、Qcache_lowmem runes、Qcache_fiee_blocks、Qcache_toral_blocks。

        如果Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況。若Qcache_hrts的值非常大,則表明查詢緩沖使用非常頻繁,此時需要增加緩沖,Qcache hrts的值不大,則表明查詢重復(fù)率很低,這種情況,使用查詢緩沖反而會影響效率,那么可以考慮不用查詢緩沖。

        query_cache_size默認(rèn)值為0,我們根據(jù)服務(wù)器配置和系統(tǒng)特點(diǎn)將該值設(shè)置為64,M,緩存的命中率達(dá)到了98.7%,從而大大提高了檢索效率。

        3.2Memcache的使用

        Memcache是高效、快速的分布式內(nèi)存對象緩存系統(tǒng),主要用于加速WEB動態(tài)應(yīng)用程序。Memcached是以守護(hù)程序方式運(yùn)行于一個或多個服務(wù)器中,隨時接受客戶端的連接操作??蛻舳丝梢杂筛鞣N語言編寫,目前已知的客戶端API包括Perl/PHP/Python/Ruby/Java/C#/C等等。PHP等客尸端在與Memcache服務(wù)建立連接之后,接下來的事情就是存取對象了。每個被存取的對象都有一個惟一的標(biāo)識符key,存取操作均通過這個key進(jìn)行。保存到Memcaehe中的對象實(shí)際上是放置內(nèi)存中的,并不是保存在cache文件中的。使用memcache技術(shù)后,系統(tǒng)性能也得到了提升。

        Memcache的優(yōu)勢主要體現(xiàn)在

        (1)分布式??梢杂?0臺擁有4G內(nèi)存的機(jī)器,構(gòu)成一個40G的內(nèi)存池,如果覺得還不夠大,可以增加機(jī)器。這樣大的一個內(nèi)存池,完全可以把大部分熱點(diǎn)業(yè)務(wù)數(shù)據(jù)保存進(jìn)去,由內(nèi)存來滿足大部分對數(shù)據(jù)庫讀取的請求,從而減輕數(shù)據(jù)庫的壓力。

        (2)單點(diǎn)。如果Web服務(wù)器或應(yīng)用服務(wù)器做負(fù)載均衡的話,在各自內(nèi)存中保存的緩存可能各不相同,如果數(shù)據(jù)需要同步,則比較麻煩,即使數(shù)據(jù)不需要同步,用戶也可能因?yàn)閿?shù)據(jù)的不一致而產(chǎn)生用戶體驗(yàn)上的不友好。

        (3)性能強(qiáng)。由于內(nèi)存的讀寫和磁盤讀寫效率上相差幾個數(shù)量級,因此,采用Memcache會比直接從數(shù)據(jù)庫讀取速度快很多。

        4結(jié)束語

        本文對Apache、PHP和MySQL技術(shù)進(jìn)行了簡單的介紹,采用這三種技術(shù)開發(fā)了一個動態(tài)電子商務(wù)網(wǎng)站,分析了系統(tǒng)的整體框架和功能組成,在系統(tǒng)運(yùn)行過程中根據(jù)實(shí)際訪問人數(shù)和服務(wù)器配置對MySQL進(jìn)行了優(yōu)化,同時采用Memcache技術(shù)對數(shù)據(jù)進(jìn)行緩存,從而提升了系統(tǒng)性能,也增加了可同時訪問人數(shù)。

        猜你喜歡
        性能優(yōu)化電子商務(wù)
        《電子商務(wù)法》如何助力直銷
        電子商務(wù)
        SQL Server數(shù)據(jù)庫性能優(yōu)化的幾點(diǎn)分析
        Web應(yīng)用的前端性能優(yōu)化
        660MW超超臨界火電機(jī)組RB性能優(yōu)化
        關(guān)于加快制定電子商務(wù)法的議案
        跨境電子商務(wù)中的跨文化思考
        Oracle數(shù)據(jù)庫性能調(diào)整與優(yōu)化分析
        科技視界(2016年1期)2016-03-30 14:27:50
        亚洲av一区二区三区网站| 精品91精品91精品国产片| 成人内射国产免费观看| 国产av黄色一区二区| 亚洲碰碰人人av熟女天堂| 在线中文字幕乱码英文字幕正常| 色偷偷亚洲女人的天堂| 激情欧美日韩一区二区| 国产精品人人做人人爽人人添| 一区二区视频资源在线观看| 波多野结衣免费一区视频| 国产av国片精品有毛| 蜜桃成熟时日本一区二区| 巨臀中文字幕一区二区| 日韩丰满少妇无码内射| 午夜大片在线播放观看| av永久天堂一区二区三区蜜桃 | 久热爱精品视频在线观看久爱| 青青国产揄拍视频| 日本熟女精品一区二区三区| 最新国产精品精品视频| 国产亚洲av人片在线观看| 久久国产精品偷任你爽任你 | 欧美巨大xxxx做受中文字幕| 国产在线精品欧美日韩电影| 欧美精品一区二区精品久久| 成人国产av精品麻豆网址| 99久久综合国产精品免费| 久久精品国产www456c0m| 欧美老肥婆牲交videos| av天堂亚洲另类色图在线播放| 国产精品国产午夜免费看福利| 欧美丰满大屁股ass| 东京热无码av一区二区| 97中文字幕精品一区二区三区| 国产偷拍盗摄一区二区| AV无码一区二区三区国产| 一区二区三区在线 | 欧| 亚洲自偷精品视频自拍| 国产麻豆剧传媒精品国产av| 一区二区在线视频大片|