1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu mongodb và xây dựng ứng dụng web minh họa

136 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 136
Dung lượng 18,3 MB

Nội dung

BO GIAO DUC vA DAo TAO TRUONG DHDL NGOAI NGU - TIN HOC TP HO CHi MINH KHOA CONG NGH~ THONG TIN "-J bI) ~ , - J: .- KHOA LUAN TOT NGHIEP • • • TiM HIED MONGODB vA XAY DUNG UNG DUNG WEB MINH HOA • • GIANG VlEN HUaNG SINH VIEN THVe DAN: HIEN: Th~c si D~NG TuAN NGHiA viJ Quae THIEN AN - MSSV: 09DH11155 LE eONG DANH - MSSV: 09DHl1188 TP.HO CHi MINH - 2013 i ~ LmMODAu Thai de;ticong ngh~ thong tin cang phM triSn va cac trang web me;tngxa hQi cling cang nO' rQ Noi dSn me;tngxa hQi la nguai ta nghI dSn trang web co s6 lUQ'ngtruy c~p cao, t~ng su~t hoe;ttdQng lien t\lc Vi d~c thu clla no nen co So' dfr lieu, noi luu trfr thong tin dfr li~u clla no cling khong gi6ng cac trang web dQng thong thuO'ng No co thS dap ling hang tri~u yeu c~u clla nguai dung cung mQt hk MongoDB la mQt co So' dfr li~u co kha nang dap ung s6 IUQ'ngyeu c~u Ian Trong phe;tmvi clla dS tai, ta se tim hiSu vS MongoDB, mQt database NoSQL va so sanh hi~u su~t hoe;ttdQng so vai co thong qua ung d\lng web minh hQa • So' dfr li~u thong thuang Mucluc r MUC LUC CHUONG 1: TONG QUAN • VE NOSQL vA MONGODB 1.1 T6ng quan vS NoSQL 1.2 T6ng quan vS MongoDB 1.2.1 Gim thi~u 1.2.2 Mo hinh dfr li~u 1.2.3 D~c diSm cua MongoDB 1.2.4 Rang bUQcdfr li~u MongoDB 1.3 Cli phap MongoDB so vm RDBMS truySn th6ng: 1.4 Moi truemg lam vi~c 1.5 Cac tinh nang n6i b?t cua MongoDB 1.5.1 MapReduce 1.5.2 Capped collection 1.5.3 LUll trfr va quan ly file dung lugng 16n vm GridFS 1.5.4 Index vi tri dia ly 1.5.5 Tinh nang khac 1.6 Cac h~ th6ng sl'rd\Jng MongoDB CHUONG 2: TAc GIA 2.1 HIEU NANG MONGODB Du6I 11 So sanh MongoDB vm MySQL 10 10 DANH GIA cAc 11 2.1.1 Gim thi~u 11 2.1.2 Thu?t toan va mo hinh thl'rnghi~m 11 2.1.3 Hi~u su~t insert tu~n tV 12 2.1.4 Hi~u su~t so vm Memcached: 13 2.1.5 Hi~u su~t bulk insert: 14 2.1.6 Hi~u su~t insert theo thread song song du6i diSu ki~n kh~c nghi~t: 15 2.2 So sanh MongoDB vm SQL Server 2008 2.2.1 Gi6i thi~u 17 17 Mucluc CO 2.2.2 M6 hinh va c~u hinh may thir nghi~m 17 2.2.3 So sanh chuc nang insert 18 2.2.4 So sanh t6c d9 truy v~n dan gi~m 21 2.2.5 So sanh t6c t9 truy v~n phuc t?p 22 CHUONG 3: SO SA.NH UA.NH GIA HI$U NANG MONGODB 25 3.1 C~u hinh may thir nghi~m 25 3.2 Lugc d6 database 25 3.2.1 M6 hinh 25 3.2.2 M6 hinh 27 3.3 Quan ly kSt qua 30 3.3.1 Luu kSt qua 30 3.3.2 Truy xu~t kSt qua 32 3.3.3 Xoa kSt qua 35 3.4 • Hi~u su~t insert dan gian 37 3.4.1 ling dVng insert vao MongoDB 37 3.4.2 ling dVng insert vao MySQL 41 3.4.3 Th\fc hi~n so sanh hi~u su~t insert 43 3.4.4 KSt lu~n 46 3.5 Hi~u su~t insert phuc t?p 46 3.5.1 ling dVng t?O dfr li~u m~u, insert MongoDB: 47 3.5.2 ling dVng t?O dfr li~u m~u, insert MySQL: 54 3.5.3 Th\fChi ~n so sanh hi ~u su~t insert: 55 3.5.4 KSt lu~n 59 3.6 Hi~u su~t truy v~n dan gian 59 3.6.1 ling dVng truy v~n cua MongoDB 59 3.6.2 ling dVng truy v~n cua MySQL 65 3.6.3 Th\fc hi~n so sanh hi~u su~t truy v~n 66 3.6.4 KSt lu~n 71 3.7 Hi~u su~t truy v~n phuc t?P 72 Mucluc 3.7.1 Vng dVng t?O bc!m dfr 1i~uvao MongoDB 72 3.7.2 Vng dVng troy v~n cua MongoDB 76 3.7.3 Vng dVng troy v~n cua MySQL 84 3.7.4 Thl,Ic hi~n t?O dfr 1i~um~u 85 3.7.5 Thl,Ichi~n so sanh hi~u su~t troy v~n 87 3.7.6 KSt 1u?n 88 3.8 Hi~u su~t troy v~n co tinh toan 89 3.8.1 Vng dVng troy v~n cua MongoDB: 89 3.8.2 Vng dVng troy v~n cua MySQL: 98 3.8.3 Thl,Ic hi~n so sanh hi~u su~t 99 3.8.4 KSt 1u?n 3.9 103 Hi~u su~t chuc nang comment 104 3.9.1 M6 hinh co sa dfr 1i~u 105 3.9.2 Vng dVng insert va troy v~n comment 109 3.9.3 Thl,Ichi~n insert va query so sanh 125 3.9.4 KSt 1u?n 127 CHUONG 4: TONG MYSQL 129 KET SO SANH GrUA MONGODB & 4.1 Tinh nang 129 4.2 Hi~u su~t 129 4.3 On dinh 129 4.4 SU dVng 130 4.5 Danh gia ca nhan 130 PHl) Ll)C 132 Chuang 1: T6ng quan v~ NoSQL & MongoDB CHUaNG 1: TONG QUAN VE NOSQL vA MONGODB 1.1 Tang quan v~ NoSQL NoSQL 1a mQt cong ngh~ 1uu trll' dll' li~u, 1a mQt thu~t ngll' dugc Slr d\lng dS noi t6i cac h~ th6ng co sa duo1i~uco d?c tinh ban ch~t m6i m6i quan h~ gill'a cac dll' li~u No dugc Slr d\lng nhiSu cac tmg d\lng web 2.0, cac trang m~mg xa hQi, cac trang kho 1uu tru' theo mo hinh quan h~ dll' 1i~u, bang gill' dQ 1inh ho?t nhu co thS anh X? S\l' thay d6i nQi dung d6ng thCri dam bao tri hi~u su~t t6i uu cua no Day cling la 1y t?i cac trang web nhu face book, twitter da ch~p nh~n co sa dfi'1i~uNoSQL dS lUlltrll' t~t ca cac dll' li~u cua h NoSQL dugc chia 10?i chinh: Key-value: dfi' 1i~udugc lUlltrll' 1a cac C?Pkhoa - gia tri Column-base: co sa dll' 1i~u t6 chuc bang, r~t t6t cho cac tmg d\lng kho dll' li~u • Document-base: dll' 1i~udugc t6 chuc va lUlltm nhu mQt bQ SU'U t~p, m6i collection 1a cac document • Graph-based: co sa dll' li~u ap d\lng 1y thuy~t d6 thi khoa hc may tinh dS lUll trll' va l~y dll' li~u, t~p trung vao S\l' k~t n6i lien thong gill'a cac node • • 1.2 Tang quan v~ MongoDB 1.2.1 Giai thieu MongoDB 1a mQt database thuQc nhom Document-based, Slr d\lng cong ngh~ NoSQL dugc ph at triSn bCri 10gen (mQt cong ty co tr\l sa d?t t?i Hoa Ky), co rna ngu6n rna dugc vi~t b~ng C MongoDB co cac d?c diSm nhu sau: • DS tim hiSu, it nh~t 1aso v6i cac database NoSQL khac • Khong c~n dinh nghla c~u trUc cua dfi'li~u c6 dinh truoc • Co kha nang rna rQng cao • Khong co quan h~ rang bUQcthich hgp dfi'1i~uphi c~u truc • D?c bi~t phil hgp voi cac tmg d\lng co s6 luqng truy c~p IOn vi t6c dQ t6t han so v6i RDBMS truySn th6ng Chuang 1: ring quan vJ NoSQL & MongoDB MQt di~u cua MongoDB la duQ'c cung cfrp miSn phi tren Internet nen chung ta co thS dS dang tiSp c?n 1.2.2 M6 hinh dfr lieu Mo hinh cua MongoDB nhu sau: ROBMS Database MongoDB < , - - , - -.;> Database < -, > CoElection < - -_, > Document > Field ~ Table ~ Row ~ Column ~ < ~ , ~ Collection la mQt t?P hqp cac tai document, tuong tlJ nhu mQt table RDBMS truy~n th6ng • Document la mQt don vi dfr li~u cua collection, bao g6m C?P khoa gia tri, dinh d?ng BSON (dinh d?ng rna rQng cua JSON, h6 trQ'nhi~u kiSu dfr li~u hon) No tuO'ng ling vcn mQt record (dong) nSu tren RDBMS truy~n th6ng 1.2.3 [Jae aiim eila MongoDB MongoDB co mQt diSm thong minh la tlJ dQng t?O database, collection ~n Di~u co nghla la chung ta khong co diu CREATE TABLE hay ALTER TABLE lam vi~c vcn MongoDB Chung ta chi dua ten cua database, collection vao Slr d\illg, nSu tren h~ th6ng khong co thi no se tv dQng , t?O ngam MongoDB Slr dl,lng cong ngh~ NoSQL nen vi~c truy vfrn no khong Slr dl,lng ngon ngfr truy vfrn SQL thong thuemg rna thay vao no Slr dl,lng cac ham thu vi~n v6i cu phap rieng Day la mQt lqi thS vi~c phong ch6ng tfrn cong SQL Injection 1.2.4 Rcmg bUGedfr lieu {rong MongoDB Trong MongoDB khong co cac rang bUQc, day la mQt lqi thS giup no ch?y nhanh, nhung cac ling dl,lng thlJc tS, dli it hay nhi~u thi cling c~n Chuang 1: T6ng quan v~ NaSQL & MongoDB cac ,lien kSt gifra cac document V61 MongoDB chung ta co hai cach dS giai quyet: + Nhung document: Vi dinh d~mgdfr li~u cua MongoDB suodVng hi BSON nen chung ta co thS nhung m9t document vao m9t document khac, di~u r~t co lqi vi troy v~n, MongoDB chi cfin troy v~n m9t lfin + Tham chiSu: Chung ta se dung ung dVng dS quan ly lien kSt b~ng cach them m9t truemg document chua jd cua document khac Cach khong duQ'c khuySn khich, vi lien kSt nhu V?y, MongoDB phai load dSn it nh~t la hai lfin m61 l~y duQ'ctoan b9 dfr li~u lien quan eu phap 1.3 MongoDB so vOl RDBMS truyJn thang: Du6i day la m9t s6 cu phap cua ngon ngfr troy v~n SQL so v61 MongoDB tren shell Luu y: Trang cac ngon ngfr l?p trinh khac thi cu phap sir dVng se khac rrIN-sE-RTINTo-u'sEis.vALUES(-3-,5)r'.'-. dbo:~;~~~:i~~~rt( {a:3.,b~5,})-."o,-, ".oo".'1 I SELECT a,b~ FROM users ~_~ _ .,_ ~ _ -m ~~ ~ ".-".-'-' _ ~ * FROM SELECT II I ! SELECT :1 users II * FROM users WHERE age=33 i i db.users.find( {}, {a:I,b:I}) ~ ~- ~_. _ ~- _ ._._.n~_~_ _ _ I I, > ! J > 1 db.users.find( {age:33}) ,, I I ! - I SELECT a,b FROM users WHERE age=33 i i ••• db.users.findO ! ~ _ ! , I I db.users.find( {age:33}, {a:I ,b: I }) I 0- SELECT * FROM users WHERE age=33 ORDER BY name ! I SELECT , , I i I I I I I I • J * FROM users WHERE age>33 I ••• db.users.find( {age:33} ).sort( {name: : I}) db.users.find( {age: {$gt:33} }) ••••••••• SELECT - - * FROM users WHERE age!=33 ~ _ _ _ .~ _ - • _ .• • _ "-,-,,,,'-' db.users.find( {age: {$ne:33} }) _ ~_ _~~ ._- SELECT * FROM users WHERE name LIKE "%Joe%" v •• ,~ ••• , ""'~".v w ~"Y ~, ~ v _w, ~, - _.-, db.users.find( {name:/Joe/}) SELECT * FROM users WHERE name LIKE "Joe%" , _._ ! ! , -~-' -'-; db.users.find( {name:F' Joel}) ~ ~~ • -J Chuong 1: T6ng quan v~ NoSQL & MongoDB SELECT * FROM users WHERE age>33 AND age "-TI • ~!DOCTYPE html PUBLIC " "http':Qwww.w3.org/TxhEm x - ~tio Insert comment VaG MySQL 3 Ng~u nhien

Ngày đăng: 01/09/2023, 21:57

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w