前言:中文期刊網精心挑選了mysql數據庫范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
mysql數據庫范文1
關鍵詞:移動應用;mysql;優化;PHP
前言
開發的一套手機應用的后端服務器支持系統,目前的業務是前端兩臺Web服務器做HA,一臺服務器做圖片服務器。前端web服務器承擔的是用戶訪問和手機客戶端的API接口數據處理工作,要求處理速度快但是沒有大規模查詢。每天用戶訪問量大約為5-10萬IP,分別用兩臺web做HA負載。兩臺Web共用一個數據庫保持數據一致性,另外使用一臺服務器數據庫做數據庫從庫。從庫作用是在主庫死機之類的問題出現的時候,切換到從庫來進行服務。但是實際起到的作用只是一個備份設備而已。
1 當前面臨的問題
每次后臺進行統計查詢,由于數據總量過大,查詢全表就會造成表鎖死或者低速響應,造成客戶端無法得到正常響應。鑒于這種問題,我們對后臺統計功能進行一些優化處理。
問題的原因很容易定位,就是表數據量太大,可是業務的邏輯又不允許進行簡單分表。嘗試做表分區效果也很一般。查詢大表的速度實在難以接受:例如lee_userlog表數據已經有兩千六百多萬條數據,每天需要查詢這個表,看數據總體統計情況。具體問題分析如下:
直接加memcache的緩存,生存時間10秒-60秒不等。好處是實施方式簡單,但是非常不適合我們的業務,因為每次生成緩存的查詢還是非常慢,并且由于每次查詢后間隔至少10分鐘才查第二次,因此這種簡單的緩存方式根本起不到任何作用,這樣的查詢并不十分頻繁,每小時大約要看2-3次,因此直接做緩存是沒有意義的,因為第一次查的時候還是慢,第二查完以后可能十幾分鐘后才查第二次。如果將結果緩存到半小時以上,將導致兩次查詢結果完全相同,導致無法對運營狀態進行有效的數據分析,運維人員沒法根據統計結果做出相應調整,考慮增加簡單sql查詢緩存,解決了按天查詢的時候每天固定數據緩存的問題,提升效果明顯,但是查當天數據的時候由于數據量還是很大,所以依然影響速度。進一步考慮的方案是,sql每次都查全表,但是后臺管理界面查詢時直接返回緩存數據,但是運行一個更新數據的服務,每10分鐘在后臺運行一次緩存對應的sql語句,將結果更新到結果集中,這樣的設計犧牲了部分實時性,但符合實際使用的情況,至少間隔10分鐘才會進行查詢查看統計結果。同時大大增加用戶使用的查詢速度。瞬間即可得到結果,根據這種思路我們分析實際方案。
2 問題的解決方案
首先可以做的最簡單的事情就是把前端用戶使用數據庫和后臺查詢數據庫分開,這樣進行讀寫分離后至少進行大規模查詢不會造成業務卡死。我們建立一個只讀的用戶連接到從庫,用戶權限設置為只允許進行SELECT操作。
其次根據實際業務邏輯將問題拆解為三種情況:
(1)按日存儲統計結果類型數據,每天會產生數據,但是過了當天數據就變為靜止數據。統計結果不會改變。
(2)數據總體情況統計,整個表的數據記錄,求和等操作。隨時跟著時間在增加或減少。
(3)更復雜的統計情況,數據按日統計,但統計出來的數據也隨時會變化。
第一種情況:按日統計的,在第一次查詢的時候保存為一條數據記錄通過查詢時間來分析,如果含有當天記錄則不緩存:
if (date('Y-m-d',$puttime)!=date('Y-m-d') && date('Y-m-d',$endtime)!=date('Y-m-d'))
如果是按日統計數據,不含有當天數據的,直接緩存統計結果到另一個緩存表中。
第二種情況:我們將數據統計的SQL語句整體緩存到緩存表中,后臺做一個服務程序定時更新這個表,維持總體統計數據為準實時,這一過程大約每10分鐘會更新一次,稍有滯后但是依然能滿足實際需求。
第三種情況:我們記錄每次更新數據的時間點和結果。新一次查詢的時候,由于數據永遠處于增量情況,因此我們只需要查出上次時間點到當前的增量數據統計情況合并如上次緩存結果中,同時更新緩存結果到當前時間點即可。這樣查詢量減少了幾個數量級,速度也就有了保障。
3 緩存表設計
db_cache
字段說明:
sql_name插入值的之前要將插入sql語句做處理,防止sql嵌套出現問題。
sql_hash字段為表中的唯一字段,用來檢索查詢對應的sql語句用。同時保障緩存能被迅速檢索到。如果需要就進行數據更新??紤]到如此長的字符串進行哈希重復概率很低,因此可以放心存儲。
result_json將查詢結果做成Json數據來存儲。因為結果數據的結構是不定項,未必只是一個值。可能是各種數據對象。
is_fresh加上是否自動刷新,一旦開啟,則后臺開啟一個服務對數據進行處理。定時進行數據刷新。
alive_time增加緩存數據生存時間,超過時間,則會被清除。
time數據表字段time被定義為記錄數據最后修改時間,這樣可以方便檢驗數據的更新情況。
4 后臺定時刷新數據機制
(1)定時查詢緩存表,清除超過生存時間的緩存數據。
(2)定時查緩存表,把需要刷新的數據sql掉出來,跑一次結果。并更新到緩存數據中。
(3)由于一些特殊的函數中查詢出來的結果要求特別處理一
下,例如有些數據要查出來后再統計一次或者只需要一個最后結果。這樣既節省了存儲空間,也節省了多次重復計算的資源。但是因為這個需要非常個性化,所以我們引入func_name字段進行存儲。
(4)大多數需求都不需要個性化處理,所以我們使用php面向對象的魔術方法__call()來簡化代碼。
mysql數據庫范文2
關鍵詞:自動評分系統;MSYQL;數據庫
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9599 (2012) 19-0000-02
1 引言
計算機專業是一門應用型的學科,其課程體系注重培養學生利用相關技術解決實際問題的能力,即實踐動手能力。然而由于當前教學手段、考核內容、考核方式等原因,常常使得實踐能力的考核成為很多計算機專業技術類課程教學效果難以提升的瓶頸。數據庫技術是計算機應用專業至關重要的核心課程之一,本文分析基于MYSQL數據庫系統平臺下的實踐考核的基本特點與不利因素,提出了一套切實可行的自動評分方法,取得了一定的成效,促進了課程的教學效果。
具體分析而言,傳統的基于MYSQL的數據庫課程實踐考核存在以下不利因素:
1.1 考核過程效率太低。實踐測試需要通過學生實際操作MYSQL系統完成相關的考核要求,而為了了解學生確實的實踐能力,教師必須在學生身邊觀測其全過程,并對結果進行評估。如果一名學生一次考核需要90分鐘,一名教師同一時間監督10名學生,則對于一般100人的考核就需要10個批次。這不僅耗費了大量的時間,也降低了實驗機房設備的使用率。
1.2 考核內容覆蓋面小。實踐測試如果采用傳統的人工出題、評分的方式,在測試試題的設計時,難免造成試題量較少,測試內容覆蓋不全面。如果測試的強度和測試內容覆蓋不全面,也必然會導致難以有效的評定學生的實踐能力
1.3 評定有失公平。MYSQL數據庫實踐考核通常在局域網中進行,在考核內容、設備、環境相同的情況下,學生相互抄襲與作弊行為易于實施。例如學生可利用局域網中的文件傳輸軟件實現考核結果的相互傳遞。
2 基于MYSQL的自動評分系統
根據上述基于MYSQL的數據庫課程實踐考核傳統測試存在的不利因素進行分析,結合實際教學內容與實踐環境,提成了一個可行的實踐考核自動測評的基本方法,其基本步驟描述如下。
2.1 設計題庫及確定考題分值。根據MYSQL數據庫課程的相關內容,設計試題庫、并確定不同知識點所占的分數比例。①表與數據庫的創建(20分);②表結構的修改及索引的創建(20分);③數據操作(10分);④查詢及視圖(20分);⑤觸發器與存儲過程的創建(20分);⑥用戶與權限管理(10分)。為了有效的利用目前常用的智能組卷策略,題庫中試題應包含分值、難度系數、所屬章節等屬性。同時與筆試(理論)試題設計所不同的是,實踐試題的設計需要注意各部分試題的連續性,使得學生的整個實踐測試過程是對某一實例應用相關的各個環節進行完整地的設計,突出實踐測試的應用能力測試目的。
2.2 設計測試的自動組卷策略。在線自動測評系統的一個重要的功能是實現試卷的智能組卷,以避免試題重復從而導致考試不公行為的出現。目前常用的智能組卷方法主要有隨機抽取法、回溯試探法、洗牌算法、最大權法和遺傳算法。由于實踐測試試題量較小、試題題型單一,為了保證系統能夠實現快速組卷、并盡快投入使用以評估系統的性能,我們采用隨機抽取法來產生試卷。算法基本過程如下:①根據知識點范圍對試題庫試題進行編碼。最終形成按不同知識點分布的試題整數段。例如表與數據庫的創建部分試題編號是從1到30、表結構的修改及索引的創建部分試題編號是從31到70等。②創建列表TestList用于記錄試卷中的試題,同時該試題保存于測試學生的考試信息中。③利用隨機函數按照不同知識點試題整數的范圍產生隨機整數進行抽題。首先判斷其是否在TestList中,如果是,則重新產生隨機整數;如果不在,則判斷該知識點題目分值是否達到事先設定,如果滿足,則加入TestList。④利用SQL語句獲取TestList中的試題,并按照預定格式組織成試卷。
2.3 設計考核基礎數據庫STM?;A數據庫STM是用于考生實踐操作的目標數據庫,數據庫包含用于考核相關試題的數據及其它數據庫對象,數據庫的設計要充分考慮到對于某一實際應用的各方面考核。STM數據庫利用下面MYSQL語句做成備份,考核時由學生在指定的位置下載,或由教師分發。
Mysqldump –uroot –p –l -all-database>STM.sql
2.4 提交考核數據庫STM。考生完成試卷所要求的實踐操作后,利用指定的MSYQL數據庫系統的備份指令,將STM及其日志文件(慢日志)進行備份,并將備份通過考試的WEB界面上傳提交,以便進行評分。
2.5 考核評分??忌峤煌瓴僮鲾祿霺TM及日志文件后。進入考核評分階段,該階段分別使用兩種策略。
①自動評分。考試服務器根據考生提交的帶有考生編號的STM備份文件,可實現計算機自動評分。首先導入考生數據庫,然后針對不同考試內容采用不同的評分策略,主要過程是檢測MYSQL系統表的記錄信息、以及對比操作執行的結果集。評分完畢后將得分存于考生信息中。②人工評分。在考生存在爭議或計算機自動評分失的情況下,教師利用學生提交的慢日志文件進行人工評分。根據學生抽取的試題,對比日志中記錄的相關SQL語句即可判分。
整個MYSQL數據庫實踐考核的自動測評過程流程圖如下所示:
3 結束語
上述MYSQL數據庫的實踐考核自動測評系統,能夠在很大程度上克服實踐考核存在的過程效率低、易作弊以及考核覆蓋面窄的問題。在相關課程的上機實踐考核過程中,該系統極大的提高了考核效率,同時使得考核過程的更加規范、公平、能力評估的更準確。通過以考促學,獲得了良好的教學效果,有效的提升了學生的動手實踐能力。
參考文獻:
[1]張力.計算機自動評分[J].中國科教創新導刊,2011,13.
[2]楊濤等.《數據庫原理》課程教學改革探討[J].中國科技信息,2011,21.
[3]黃立.全國高校計算機考試機試評分系統方案設計[J].玉林師范學院學報,2006,5.
[4]唐漢明等著.深入淺出MYSQL數據庫開發、優化與管理維護[M].人民郵電出版社,2009,3.
[5]金漢均,鄭世玉,吳明武.分段隨機抽選法在智能組卷中的研究與應用[J].計算機應用研究,2003,20(9).
mysql數據庫范文3
[關鍵詞] MySQL 開源數據庫 中小企業 應用
當今社會,信息已經成為一種至關重要的資源。為此許多大型企業購進各種大型商業數據庫,并基于它們展開一系列的應用。然而這些大型商業數據庫價格非常昂貴,對于許多中小型企業來說,過于昂貴的數據庫成本,是阻礙各種數據庫解決方案進入企業的重要因素。目前,在開放源代碼團體的努力下,已經涌現出一些有代表性的優秀開源數據庫。這些開源數據庫以低廉的成本,適用的功能已經在各種中小企業中得以廣泛的應用。MySQL數據庫就是其中的典型代表。
一、MySQL開源數據庫的特點
1.速度快
據MySQL開發者稱,MySQL可能是目前能得到的速度最快的數據庫之一。開源數據庫之所以速度快,除了技術上的原因之外,還因為精簡了一些看來不必要或不常用的功能,這一點對于中小型企業并沒有太大影響,卻得到了速度上的提升。
2.易用,可移植性好,支持網絡應用
相對于Oracle、DB2等大型數據庫的復雜設置和管理,MySQL既簡單又高效。一般的用戶稍加學習就很容易能管理好一個MySQL。MySQL可以運行在各種常見的操作系統中,如Windows、 Unix、Linux、OS/2等??梢苑奖愕貙祿鞆囊粋€操作系統轉移到另一個操作系統,而數據和應用都不需要再做修改。MySQL支持網絡應用。用戶可以通過網絡來訪問MySQL的數據庫,通過Internet則可以與任何位置的任何人共享數據。
3.支持SQL語言,和其他商業數據庫具有一定的共性
SQL(結構化查詢語言)是一種所有現代數據庫都選用的語言。MySQL很好地支持SQL語言。另外MySQL也支持使用ODBC,這些都使得MySQL和其他商業數據庫具有了一定的共性。
4.源代碼開放,容易找到技術支持
源代碼開放是開源數據庫的優勢所在。如果不理解某個原理或算法,可以通過直接閱讀源碼進行分析;如果有不適合本應用的地方,還可以自行修改。關于MySQL可以找到各種各樣大量的文檔,許多技術問題都可以從中找到答案,各種郵件列表、技術論壇中還會有許多熱心人解答所提出的問題。還可以和MySQL開發者簽訂正式的技術支持合同,通過支付費用來直接得到開發者的技術支持。
5.價格便宜
與商業數據庫相比,開源數據庫在價格上有明顯的優勢。以MySQL為例,它對于Unix、Linux等非Windows用戶來說是完全免費使用的。如果愿意付費,就能從MySQL開發者那里得到正式的技術支持,這一點對于企業來說會更放心。
二、中小企業對數據庫的需求
中小型企業雖然普遍規模不大,但在企業活動中各種信息的交換仍然非常頻繁,需要數據庫來支持。但中小企業與大企業在對數據庫要求上又存在差異,這種差異主要表現在以下幾個方面:
1.中小型企業的數據規模小
中小型企業的數據量相對于大型企業是比較小的。對于一個只有GB級數據量要求的企業,選用DB2、Oracle等大型數據庫有些浪費。
2.中小型企業對數據庫功能的要求不同于大型企業
雖然數據庫的功能越豐富越好,但是對于中小型企業來說,大型數據庫提供的各種相關功能,并不是都用得上。另一方面,中小型企業也需要數據庫能盡可能多地提供一些功能,而不是一味地簡單。 例如,中小型企業不要求一些大型數據庫的自帶集成開發環境和工具,但也要求數據庫能夠支持多種開發語言和工具,以便企業靈活地開發自己所需的各種應用。
3.更關注成本
中小型企業的資金遠不如大型企業雄厚,特別是一些小企業,成本往往是關鍵因素,所以中小型企業希望所用的數據庫有良好的性價比。
4.適度的安全性
中小型企業要求有適度的安全性,除非特殊的行業,否則不必對安全性要求太苛刻。適度的安全性對于中小型企業來說已經足夠。
三、MySQL開源數據庫在中小企業應用實例
MySQL是一個可用于多種操作系統的關系數據庫系統,是一個具有客戶機/服務器體系結構的分布式數據庫管理系統,適用于網絡,可在Internet上共享數據庫。MySQL已經具備相當的成熟度。對于中小型企業,這是個不錯的選擇。
下面以一個小型公司為例,來看看開源數據庫是如何在中小型企業中得到應用的。
某公司,經營范圍是貨物。下屬3家分公司,在職員工有19位。至今營業已4年有余,每年營業額2500萬元左右。該公司發展過程中,曾經多次考慮開發信息管理系統,并建立公司網站,但是商用數據庫的價格實在太高,所以一直沒有實現。一年前,公司選擇了MySQL做為自己的數據庫,并建立了信息管理系統和網站,整個應用結構如下圖所示:
從圖中可以看出,整個應用都是采用瀏覽器/服務器(B/S)結構進行開發的。作為整個應用中心的數據庫直接放在Internet的一臺虛擬主機上,MySQL的網絡特性使得用戶可以通過Internet在任何地方共享數據庫。
信息管理系統面向公司內部員工和管理者提供對人員、設備、服務、財務及各項活動實施的、全面的動態智能化管理。 包括:人員管理、合同管理、財務管理、貨物管理和客戶關系管理等多個功能模塊。 企業網站主要面向客戶提供業內動態、企業新聞、網上答疑等信息。
整個應用,除采用開源數據庫MySQL之外, Web服務選用Apache,開發語言選用PHP,所有這些都是免費的,因此公司用了很小的投入就建立了自己的應用,滿足了自己的需求。
四、結束語
費用低且性能佳的開源數據庫使得中小型企業使用數據庫成為可能。在引入數據庫后,又會在使用過程中不斷地發展新應用,從而推動企業的信息化進程。我們相信,隨著開源數據庫在功能上的日益強大和完善,以及人們對其了解的深入,開源數據庫在中小型企業中將會有更廣泛和深入的應用。
參考文獻:
[1]Petersen P. Liux Complete Reference(The Third Edition)[M].McGraw-hill,1999
mysql數據庫范文4
關鍵詞:商務系統設計;交互式WEB技術;WEB數據庫
隨著計算機網絡技術和通信技術的高速發展,Internet帶來的電子貿易正改變著現今商業活動的傳統模式,WEB站點已成為中小企業展現自我、直接面向客戶的窗口。計算機技術、網絡技術與數據庫技術發展相結合,利用基于數據庫的交互式WEB商務系統已成為企業發展電子商務、開辟國際市場、創造新的營銷方式、參與大企業、跨國公司競爭及企業和客戶在全球范圍內的信息交換提供了快捷途徑。創建高效的WEB商務系統也日益成為中小企業的戰略目標。
一、Linux平臺Apache、PHP、MySQLWEB商務系統平臺優勢
Linux、MySQL、Apache和PHP都具有開放源碼、免費的特點。Linux是一個遵循POSIX(PortableOperatingSystemInterface)標準的開放源碼的操作系統,具有安全、穩定和移植性好,并有豐富的軟件支持和強大的網絡功能。MySQL是一種快速的多用戶、多線索化并具有豐富結構化查詢語言(SQL)的關系數據庫系統。Apache是目前世界排名第一的WEB服務器。Apache是免費的,源代碼是公開的,用戶可以修改、編譯自己的Apache。PHP是GUN標準的自由軟件,它以其速度快、跨平臺、安全、易學等特點越來越顯示出它的優越性。由以上特點可見,PHP與Apache、MySQL在Linux平臺上,具有較高的性價比,號稱“黃金組合”,在WEB商務系統平臺的搭建中具有其獨有優勢。
二、Linux平臺Apache、PHP、MySQL的動態WEB數據庫系統工作原理
基于Linux下的Apache、PHP、MySQL的動態WEB數據庫系統,是在Linux操作系統環境下,以Apache為WWW服務器,以MySQL為WEB數據庫,采用TCP/IP技術,以HTTP作為傳輸協議,客戶端瀏覽器通過HTML訪問Apache服務器,Apache服務器調用并執行服務器端PHP程序,PHP程序執行SQL語言操作MySQL數據庫,同時返回查詢結果,PHP從MySQL數據庫中取得數據后,按照文件要求,生成HTML頁面交給Apache服務器,最后客戶端瀏覽器將HTML文件解釋執行并顯示出來。它是一種典型的B/W/D(瀏覽器/WEB服務器/數據庫服務器)三層體系結構。在這種B/W/D三層體系結構中,客戶端通過瀏覽器提交信息給WEB服務器,WEB服務器再通過WEB服務器端的PHP嵌入式腳本語言與MySQL數據庫進行數據交換,通過標準SQL語言對數據庫進行數據操作,在將處理完畢的數據通過PHP嵌入式腳本語言返回給客戶端,再通過瀏覽器解析執行。在這種動態交互式WEB數據庫應用系統中,PHP語言在以Apache為WEB服務器端運行,在ApacheWEB服務器將信息發到客戶端之前,PHP腳本由ApacheWEB服務器解釋執行,再發送到客戶端瀏覽器。
三、WEB數據庫商務系統的系統設計
(一)WEB數據庫商務系統開發的三層設計模型
本系統采用Liunx平臺下Apache、PHP、MySQL進行WEB數據庫商務系統設計,整體架構使用Web應用開發的三層設計模型,系統劃分為用戶界面層、業務邏輯層、數據訪問層,這樣有利于系統的開發、維護和擴展,三層的功能如下:
第一,用戶界面層。用戶界面層用來實現顧客瀏覽器中顯示商品信息用戶界面。該層以適當的形式顯示由業務邏輯層動態傳送的數據信息,這個功能要通過使用相應的HTML標記和CSS模式來實現。應用表達層為最終用戶提供界面,同時它也是系統接受用戶的請求的接口。
第二,業務邏輯層。業務邏輯層是整個分層模型的中間層,也是整個分層模型中最為重要的層。這一層為用戶界面層提供功能調用,同時它又調用數據訪問層所提供的功能訪問數據庫。
第三,數據訪問層。數據訪問層是整個分層體系的最底層,它主要用來實現與數據庫的交互,即完成查詢、插入、刪除和修改數據庫中數據的功能。數據訪問層為業務邏輯層提供服務,根據業務邏輯層的要求從數據庫中提取數據或者修改數據庫中的數據。
(二)WEB數據庫商務系統數據流設計
為了完成顧客訂購商品、定貨處理、庫存管理和發貨,設計數據流圖如圖1所示。
四、WEB數據庫商務系統網站結構設計
本系統采用Apache、PHP、MySQL構架,從系統功能上分WEB數據庫商務系統外部功能設計和WEB數據庫商務系統內部管理系統功能設計。
(一)WEB數據庫商務系統外部功能設計
WEB外部商務網站采用PHP、MySQL開發,設計友好的用戶界面面,提供以下功能:
1、提供電子目錄:電子目錄中包括商品信息和同類產品的比較信息,幫助客戶搜索、發現需要的商品;并進行比較,幫助客戶進行購買決策。
2、商品的評估:客戶對已購買商品的評價信息。
3、購物車:應用于客戶的在線購買功能,客戶可以暫時將商品放入購物車,同時也可刪除或更改購買的數量。
4、客戶訂單:客戶和相關信息及購買商品的相關信息。
5、商品:是否已客戶訂購商品的信息,并告知客戶。
6、售后信息:主要是客戶選購產品的結算信息、訂單的狀態及售后服務。
(二)WEB數據庫商務系統內部管理系統功能設計
WEB內部管理系統也PHP、MySQL開發,提供高效率的信息處理功能如下:檢查客戶的注冊信息;處理客戶訂單;商品庫存管理;能夠跟蹤產品銷售情況;能夠和物流配送系統建立接口;和銀行之間建立接口;實現客戶關系管理。
(三)系統的構成,可以將WEB數據庫商務系統分成以下三個子系統
商品管理子系統:商品信息管理、;交易子系統:處理訂單、支付;客戶管理或客戶關系管理子系統。
五、WEB數據庫商務系統數據庫設計
WEB數據庫商務系統采用MySQL關系型數據庫,庫中主要包含以下表:客戶注冊信息表:存放客戶信息;商品目錄表:用來存放目錄名,以及目錄所在的位置;商品數據表:用來存放商品信息,包括商品編號、名稱、規格、價格、描述信息等;連接表:用來存放商品品與目錄之間的關系;購物車數據表:用來存放客戶購物車中商品的清單及數量、價格及客戶購物的狀態;業務員信表:用于存放業務員的信息。
六、結束語
本文介紹了一種比較適合于中小企業的WEB數據庫商務系統開發架構的設計方案,采用Apache、PHP、MySQL組合,在Linux平臺下搭建經濟、穩定、安全、快速、高效的交互式WEB數據庫商務系統。系統重點介紹了Linux平臺下Apache、PHP、MySQL的動態WEB數據庫系統工作原理、系統設計、網站結構設計、數據庫設計。為我國中小企業,在資金短缺的狀況下,搭建中小企業WEB商務系統、開展電子商務提供一個比較理想的設計方案。
參考文獻:
1、郭健.戰PHP[M].民郵電出版社,2000.
2、薛軍超.MySQL網絡數據庫開發[M].民郵電出版社,2001.
3、劉志勇.Linux+PHP+MySQL案例教程[M].科多媒體電子出版社,2006.
4、余韶霞.基于JSP技術的電子商務網站設計與開發[J].
5、(美)JayGreenspanBradBulger.MyS-
QL/PHPDatabaseApplications[J].HungryMinds,Inc.,2001(9).
6、劉軍,董寶田.電子商務系統的分析與設計[M].高等教育出版社,2003.
mysql數據庫范文5
關鍵詞:infobright;mysql整合;數據倉庫;高數據壓縮比
一、技術概況
infobright進行復雜的查詢時,通過其專利的知識網格(knowledge grid)和綜合優化技術,能夠實現優異的性能表現。數據在導入infobright之后將被高度壓縮并以“數據塊 (data pack)”的形式存儲,于此同時,知識網格會自動創建一個非常緊湊的元數據,其中包含了統計數據和數據塊之間的關系信息。因此當接收到查詢時,infobright查詢優化器可以通過元數據智能的決定哪些數據塊與查詢請求相關,并將之解壓?;谥R網格技術,infobright不需要專門對數據進行劃分,也不需要建立索引,從而節省查詢處理時間,提升響應速度。
基于列的數據架構 infobright實施、管理非常簡便,不需要人工調試、數據分區和創建索引,有效的降低了管理成本,此外infobright不需要運行在特殊的專用硬件上,同時它的數據壓縮比很高(10:1—40:1),比任何其他數據倉庫系統對存儲設備的占用都小。這些特性讓infobright為企業it部門降低了預算上的負擔。
二、功能
infobright 企業版——分析型高性能數據倉庫
在隨時在線的今天,需要進行業務分析的數據規模驚人增長。商業決策需依托海量數據的實時訪問,企業才能保證正確方向。
infobright是一個基于獨特的專利知識網格技術的列式數據庫,能夠降低您90%的管理工作量。使用infobright不需要創建特殊的數據庫模式,無需創建和維護索引,無需對數據進行分區,甚至不需要手動調整,知識網格就會在原始數據導入時,自動創建和維護數據,并用以優化每一個查詢。在一臺pc服務器上,infobright企業版在對50tb甚至更多數據量進行多并發復雜查詢時,能夠顯示出令人驚嘆的速度,相比于mysql,其查詢速度提升了數倍甚至數十倍。在同類產品中,infobright的單機性能處于領先地位。
三、高數據壓縮比
1.行業領先的數據壓縮技術
如果您的系統數據量每天都在快速增長,受限于磁盤的容量與傳輸速率,您進行備份的成本與時間將快速增加,直至您無法承受。幸運的是,軟件技術的發展速度超越了磁盤數據傳輸技術的發展速度,infobright可以將數據以10:1至40:1的比率壓縮,通過知識網格與列式架構的結合,極大的提升了查詢響應速度,并降低了存儲成本。通過列式架構和超壓縮算法,10tb的原始數據在infobright中將被壓縮至1tb,對某些類型的數據,最高可以達到40:1的壓縮率。并且infobright壓縮的速度非常快,目前已經可以以每小時1tb甚至更快的速度向infobright導入數據,從而讓您的數據倉庫系統接近“實時”工作的狀態。
如果您的企業正苦于應對劇增的數據規模、增長的客戶需求以及較高的用戶期望,同時優化it投入,infobright先進的數據庫技術就可能幫助到您。讓您的it團隊能專注于快速完成業務交付而非基礎架構,才能創造更大商業價值。
2.mysql整合
(1)與mysql整合
infobright是基于mysql開發的分析型數據庫,mysql原有用戶可以通過infobright得到理想的數據倉庫解決方案,它使用mysql用戶熟悉的界面,對基于mysql開發的應用不需要進行改動,就可以無縫升級到infobright。與mysql相兼容的bi工具及etl工具,infobright都能完美支持。
三、技術特性
sql支持 全面支持ansi sql-92標準和sql-99擴展標準中view和存儲過程的部分
1.靈活的schema支持。支持所有schema設計;
2.行業標準接口。
支持標準數據庫接口,包括odbc、jdbc和本地連接;
3.api接口支持 支持的api接口包括c、c++、c#、borland delphi (via dbexpress)、 eiffeel、smalltalk、 java (with a native java driver implementation), lisp, perl, php, python, ruby, realbasic, freebasic, and tcl;
4.dml支持。支持dml語句(insert、update、delete);
5.并發用戶數。支持至多500個數據庫用戶,32個并發查詢(視cpu核心數與內存大小而定);
6.操作系統支持。windows server 2003/2008 (64-bit, 32-bit), solaris 10 (64-bit), red hat enterprise linux 5 (64-bit),novell suse linux enterprise 10, red hat enterprise linux 5 advanced server (64-bit),debian ‘lenny’ (64-bit), or centos 5.2 (64-bit)
7.處理器支持。最少4g內存的intel和amd x86架構服務器(建議16g內存或更多)
8.數據導入方式支持。infobright企業版支持兩種數據導入方式。通過文本方式向mysql中導入,或通過文本和二進制文件的方式向infobright中導入(最高280gb/小時)。
2.在線分析
無論您的公司是在線廣告網絡,零售商,手機廣告服務提供商或是任何其他的制造業,分析的重要性都與與日俱增,了解您網站的性能、您的客戶的訪問行為、評估廣告和營銷活動的效果,并分析成功與失敗之間的差異,這能夠讓您企業與競爭對手拉開差距,取得最終的勝利。而這需要您對來自網頁和離線方式的大量數據進行有效的利用,infobright讓您能夠用低成本的方式輕松獲得這種能力,相比與其他類似的方案,infobright的成本低廉,管理簡便,降低了您獲得競爭優勢的門檻。
3.數據集市(data mart)
數據集市通常定義為包含特定應用分析的數據倉庫, 其分析應用與用戶的業務緊耦合,具有較強的專業特性,因此通常針對集團內部某個特定的部門建設。在過去幾年里,數據集市系統的實施數量快速增長,這種增長是由商業用戶快速查詢的需求驅動的。
過去數據集市項目由集團的it部門統一實施,而現在,越來越多的集團內部用戶部門自行實施數據集市項目,并由內部it經理擔任實施負責人,以確保數據集市的功能與需求吻合。
四、infobright幾大優點:
1.高壓縮比率,平均壓縮比可達10:1,甚至可以達到40:1,我用infobright把3.1g的數據存成不足300m。
2.列存儲,即使數據量十分巨大,查詢速度也很快。用于數據倉庫,處理海量數據沒一套可不行。
3.不需要建索引,就避免了維護索引及索引隨著數據膨脹的問題。把每列數據分塊壓縮存放,每塊有知識網格節點記錄塊內的統計信息,代替索引,加速搜索。
4.單一臺服務器可以高效地讀寫30t數據。具有可擴展性,這里是指對于同樣的查詢,當數據量是10t時,它耗費的時間不應該比1t數據量時慢太 多,基本是一個數量級內。
與mysql對比:
1.infobright適用于數據倉庫場合,即非事務、非實時、非多并發;分析為主;存放既定的事實(基本不會再變),例如日志,或匯總的大量的 數據。所以它并不適合于應對來自網站用戶的請求。實際上它取一條記錄比mysql要慢很多,但它取100w條記錄會比mysql快。
2.mysql的總數據文件占用空間通常會比實際數據多,因為它還有索引。infobright的壓縮能力很強大,按列按不同類型的數據來壓縮。
3.服務形式與接口跟mysql一致,可以用類似mysql的方式啟用infobright服務,然后原來連接mysql的應用程序都可以以類似的 方式連接與查詢infobright。這對熟練mysql者來說是個福音,學習成本基本為0。
infobright有兩個版:開源的ice及閉源商用的iee。ice提供了足夠用的功能,但不能 insert,delete,update,只能load data infile。iee除提供更充分的功能外,據說查詢速度也要更快。
五、不足之處
不支持數據更新:社區版infobright只能使用“load data infile”的方式導入數據,不支持insert、update、delete
不支持高并發:只能支持10多個并發查詢
參考文獻:
[1]blog.s135.com/infobright/
mysql數據庫范文6
關鍵詞:JSP JDBC MTSQL
中圖分類號:TP392 文獻標識碼:A 文章編號:1007-9416(2012)11-0173-01
1、引言
JSP是當今比較流行的動態網頁開發技術。JSP技術是用Java語言作為腳本語言,在傳統的HTML文件中加入Java代碼(Scriptlet)和JSP的一些標記(tag),這樣就生成了JSP的動態網頁。不僅如此,JSP還能夠在servlet和JavaBean的技術支持下,開發出功能強大的動態網站。就動態網站而言,數據庫的支持將是該系統中最重要的部分,對網站的更新性和交互性將起到決定性的作用。MySQL是現在流行的關系數據庫中的一種,它是真正意義上的多線程、多用戶的SQL數據庫服務器,發展到今天為止,已經有非常多的用戶在使用這種數據庫。和其他的數據庫管理系統(DBMS)相比,它的優點非常明顯,不僅小巧,而且功能齊全,查詢也非常方便,對于一般中小型,甚至大型的應用軟件開發,mySQL都能得心應手。
使用JDBC驅動程序訪問MySQL數據庫已經是JSP開發中非常重要的工作,本文以MYSQL為例,實現JSP對數據庫的訪問。
2、利用專用JDBC驅動程序連接數據庫MYSQL
要在JSP頁面中訪問數據庫的方法有很多,但現在使用最常見的連接方法是采用JDBC驅動程序來連接數據庫。
JDBC是一種JavaAPI,用于執行SQL語句,它通常由一些采用用Java語言編寫的接口和類構成,JDBC提供了一些標準的應用程序設計接口,使得軟件開發人員能夠使用純Java API來編寫數據庫應用的相關程序。通俗地講,JDBC就是能夠做三件事:建立數據庫的連接、傳送sql語句并處理結果,由于很多數據庫都具有標準的JDBC驅動程序,因此JSP程序就可以直接通過JDBC驅動程序連接到相關數據庫中,執行各種查詢、提取各種數據等工作。
在編寫數據庫應用程序之前,首先需要找到所需要連接的數據庫的驅動程序,MySQL的驅動程序稱為Connector/J,可以在MySQL的官方網站上下載,網址為:。
連接到數據庫MySQL的代碼段為:
......
Connection conn=null;
try
{ //裝載驅動程序
Class.forName("com.mysql.jdbc.Driver");
//創建連接
String Conn="jdbc.mysql.://127.0.0.1:3306/jsp_db ";//jsp_db是你要連接到的數據庫名稱
String User="root";//和你建立的數據庫連接自己的用戶名設置一致
String password="root";//根據你自己設置的數據庫連接密碼進行設置
conn=DriverManager.getConnection(Conn,user,password);
out.print("JDBC專用驅動程序連接數據庫成功!");
}
catch(Exception e)
{ out.println("JDBC專用驅動程序連接數據庫失??!");}
......
測試中如看到“JDBC專用驅動程序連接數據庫成功!”的字樣,則表示JDBC專用驅動程序連接數據庫成功。
3、插入漢字到數據庫MySQL時亂碼的處理
在編寫數據庫應用程序的問題,往往會遇到中文問題。由于字符編碼的原因,插入或修改數據到數據庫時,漢字會變為“?”,可以通過以下方法解決此問題。
連接mysql時(無論在從mysql讀還是存數據的情況),指定使用的編碼方式為gb2312,具體代碼為:
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root
&password=1&useUnicode=true&characterEncoding=gb2312"?。?/p>
如果采用上述方法還不能解決問題的話,那么就需要在剛才處理的基礎上強制進行編碼方式轉換讀入的字符串。
語句格式如下所示:
String name_message = rst.getString("name_message"); name_message= new String(name.getBytes("ISO-8859-1"),"gb2312");
另外:上述代碼作用也等同于:String name_message =new String( rst.getString("name_message").getBytes("ISO-8859-1"),"gb2312"));其中rst為返回的resultset,ISO-8859-1為mysql默認的編碼方式,這條語句的作用是將用ISO-8859-1的編碼方式轉換為gb2312的編碼方式,采取這種形式人為的進行強制轉換,也能夠解決相當部分的問題,總之,這兩個方法結合起來使用,基本上能夠解決插入漢字出現亂碼的情況。