999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網上購物系統的實現及性能優化

2012-04-29 00:44:03徐躍偉
計算機時代 2012年1期

徐躍偉

摘要采用Apache+PHP+MySQL技術開發了一個動態電子商務網站,分析了系統的整體框架和功能組成,并在MySQL的優化和Memcache的使用萬面提出了系統優化的思路。

關鍵詞電子商務,PHP,MySQL;Memcache,性能優化

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

0引言

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

1開發工具及總體概述

網上購物系統運行平臺為Windows 2003操作系統,Web服務器軟件為Apache。系統開發工具前端使用PHP,后臺數據庫使用MySQL,網頁設計工具為Dreamweaver MX。

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

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

MySQL是一個真正的多用戶、多線程的SQL數據庫服務器,它是—個客戶機服務器結構的實現。MySQL是現在流行的關系數據庫中的一種,相比其他的數據庫管理系統(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優點。MySQL主要目標是快速、健壯和易用。關鍵它是免費的,可以在Interact上免費下載到,可免費使用。MySQL對于一般中小型,甚至大型應用都能夠勝任。

由于這三個軟件均為自由軟件,同時,APACHE、PHP和MySQL的組合還可以跨平臺運行,可以在Windows上開發,然后在Unix平臺上運行。因此,這三個軟件是架構數據庫驅動的動態網站的絕佳組合。

2具體功能描述及需求

2.1系統總體框架

系統采用標準B/S三層結構開發。三層結構分別為用戶界面(UI)層、業務邏輯層和數據層,如圖1所示。

(1)客戶層

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

(2)邏輯層

邏輯層負責接收Web瀏覽器傳來的請求并將請求傳給數據層,同時將請求處理結果發給Web 瀏覽器。它由Web表單和組件服務組成。其中Web表單是向客戶呈現數據和信息的基礎,也是響應和處理客戶信息和數據及顯示Web表單交互生成的信息和數據的基礎。

(3)數據層

通過PHP的mysql擴展庫或mysql擴展庫操縱數據,為業務邏輯層提供數據服務,如存儲數據操作結果、返回數據檢索結果等。

2.2功能設計

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

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

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

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

(4)顧客瀏覽統計。顧客點擊商品后,該記錄會保存在數據庫中。后臺可顯示顧客測覽過的商品列表,從而發現顧客比較感興趣的商品。

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

(6)后臺訂單管理。包括訂單的審核、無效訂單的刪除、將汀單記錄導出后進行發貨及銷售統計表。

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

3性能優化

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

3.1mysql的優化

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

(1)索引緩沖區

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

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

(2)查詢緩沖

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

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

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

query_cache_size默認值為0,我們根據服務器配置和系統特點將該值設置為64,M,緩存的命中率達到了98.7%,從而大大提高了檢索效率。

3.2Memcache的使用

Memcache是高效、快速的分布式內存對象緩存系統,主要用于加速WEB動態應用程序。Memcached是以守護程序方式運行于一個或多個服務器中,隨時接受客戶端的連接操作。客戶端可以由各種語言編寫,目前已知的客戶端API包括Perl/PHP/Python/Ruby/Java/C#/C等等。PHP等客尸端在與Memcache服務建立連接之后,接下來的事情就是存取對象了。每個被存取的對象都有一個惟一的標識符key,存取操作均通過這個key進行。保存到Memcaehe中的對象實際上是放置內存中的,并不是保存在cache文件中的。使用memcache技術后,系統性能也得到了提升。

Memcache的優勢主要體現在

(1)分布式。可以由10臺擁有4G內存的機器,構成一個40G的內存池,如果覺得還不夠大,可以增加機器。這樣大的一個內存池,完全可以把大部分熱點業務數據保存進去,由內存來滿足大部分對數據庫讀取的請求,從而減輕數據庫的壓力。

(2)單點。如果Web服務器或應用服務器做負載均衡的話,在各自內存中保存的緩存可能各不相同,如果數據需要同步,則比較麻煩,即使數據不需要同步,用戶也可能因為數據的不一致而產生用戶體驗上的不友好。

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

4結束語

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

主站蜘蛛池模板: 99国产精品一区二区| 国产在线自揄拍揄视频网站| 在线观看国产精品一区| 日韩麻豆小视频| 青草视频网站在线观看| 欧美综合中文字幕久久| 四虎永久免费在线| 极品国产在线| 操美女免费网站| 成年网址网站在线观看| 国产欧美日韩视频怡春院| 国产精品三区四区| 九九热视频精品在线| 欧美日韩资源| 亚洲国产欧洲精品路线久久| 国产美女一级毛片| 国产精品第一区| 国产精品极品美女自在线网站| 国产极品美女在线| 国产亚洲精| 老司国产精品视频| 国产欧美日韩专区发布| 国产一区二区三区日韩精品| 亚洲成网777777国产精品| 国产综合另类小说色区色噜噜| 亚洲中文字幕在线观看| 国产成人91精品免费网址在线| 久久久久久尹人网香蕉| 国产清纯在线一区二区WWW| 操操操综合网| 伊人激情久久综合中文字幕| 国产原创自拍不卡第一页| 久久77777| 亚洲人成网站18禁动漫无码| 97在线免费| 国产精品视屏| 国产亚洲现在一区二区中文| 午夜欧美在线| 亚洲天堂日本| 国产精品浪潮Av| 国产在线小视频| 欧美成人精品在线| 热久久国产| 亚洲成a人在线观看| 又黄又湿又爽的视频| 潮喷在线无码白浆| 国产日韩欧美一区二区三区在线| 91亚洲精品国产自在现线| 国产主播一区二区三区| 久草视频中文| 91口爆吞精国产对白第三集| 五月婷婷伊人网| 99ri国产在线| 欧美色伊人| 黄色三级毛片网站| 噜噜噜久久| 国产欧美精品一区二区| 亚洲激情区| 国产女人水多毛片18| 蜜臀AVWWW国产天堂| 亚洲人成人无码www| 日本国产一区在线观看| 91久久大香线蕉| 久久一级电影| 园内精品自拍视频在线播放| 永久免费精品视频| 国产91导航| 91人妻日韩人妻无码专区精品| 99久久成人国产精品免费| 一区二区自拍| 国产精品手机视频| 免费一级无码在线网站| 亚洲成人一区二区三区| 成人综合久久综合| 久久久久久高潮白浆| 国产精品所毛片视频| 91久久青青草原精品国产| 国产全黄a一级毛片| 亚洲日本在线免费观看| vvvv98国产成人综合青青| 国产成人AV男人的天堂| aⅴ免费在线观看|