摘要:可想而知,大數(shù)據(jù)時(shí)代,數(shù)據(jù)庫(kù)中有條數(shù)據(jù)都算少的,如果我們要?jiǎng)幼侄?,時(shí)間太長(zhǎng),所以,字段這個(gè)東西,太不靈活數(shù)據(jù)不靈活。數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。
數(shù)據(jù)庫(kù)有很多,當(dāng)然常用的也有很多,我們這里挑選兩個(gè)類(lèi)別下面主流的數(shù)據(jù)庫(kù)進(jìn)行分析講解為什么使用數(shù)據(jù)庫(kù)
我們已經(jīng)多次說(shuō)明了數(shù)據(jù)庫(kù)的重要性,今天的開(kāi)篇還是以數(shù)據(jù)庫(kù)的重要性開(kāi)題,數(shù)據(jù)庫(kù)就是存儲(chǔ)數(shù)據(jù)的,那么存儲(chǔ)數(shù)據(jù)用txt就行了啊,為什么要用數(shù)據(jù)庫(kù)?
理由之1:數(shù)據(jù)庫(kù)有行、列的概念,數(shù)據(jù)由關(guān)系,數(shù)據(jù)不是散的。
理由之2:數(shù)據(jù)庫(kù)能夠提供非常方便的接口,讓增刪改查操作變得簡(jiǎn)單
理由之3:數(shù)據(jù)庫(kù)不能自己玩兒,要向PHP/NET/JSP等語(yǔ)言提供接口
數(shù)據(jù)庫(kù)按照大類(lèi)分為關(guān)系型數(shù)據(jù)庫(kù)(也叫結(jié)構(gòu)型數(shù)據(jù)庫(kù))和非關(guān)系型數(shù)據(jù)庫(kù)
常用的關(guān)系型數(shù)據(jù)庫(kù)有:MySQL(使用人數(shù)最多的開(kāi)源數(shù)據(jù)庫(kù)),SQL SERVER、Oracle、Access
這些數(shù)據(jù)庫(kù)典型的特點(diǎn)就是每個(gè)表中都有明確的字段,每行記錄,都有這些字段,不能有的行有,有的行沒(méi)有
但是這個(gè)有什么問(wèn)題呢?
比如,我們現(xiàn)在想往一個(gè)已經(jīng)有1000條數(shù)據(jù)的數(shù)據(jù)庫(kù)中增加一個(gè)字段,之前已經(jīng)存在的數(shù)據(jù),實(shí)際上不需要增加這個(gè)字段,因?yàn)橛脩粢呀?jīng)填寫(xiě)完表單,不需要再用高中信息了,我們的意圖就是在今后注冊(cè)的用戶,需要填寫(xiě)高中信息。但是我們剛剛說(shuō)了,所謂的字段,是表的一個(gè)結(jié)構(gòu),所有的行都必須擁有,不能有的行有這個(gè)字段,有的行沒(méi)有這個(gè)字段。
可想而知,大數(shù)據(jù)時(shí)代,數(shù)據(jù)庫(kù)中有100w條數(shù)據(jù)都算少的,如果我們要?jiǎng)幼侄?,時(shí)間太長(zhǎng),所以,字段這個(gè)東西,太不靈活
數(shù)據(jù)不靈活。一個(gè)字段,需要是同樣類(lèi)型的數(shù)據(jù),不能一行記錄是文本,一行記錄是數(shù)字
引用一段百度百科的官方回答什么是NOSQL:
NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類(lèi)型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。
我們來(lái)對(duì)比下關(guān)系型數(shù)據(jù)庫(kù)和NOSQL
非結(jié)構(gòu)型數(shù)據(jù)庫(kù),沒(méi)有行、列的概念,用JSON來(lái)存儲(chǔ)數(shù)據(jù)。集合就相當(dāng)于“表” ,文檔就相當(dāng)于“行” ,文檔就是JSON
因此,我們總結(jié)NoSQL數(shù)據(jù)庫(kù)在以下的這幾種情況下比較適用:
1、數(shù)據(jù)模型比較簡(jiǎn)單;
2、需要靈活性更強(qiáng)的IT系統(tǒng);
3、對(duì)數(shù)據(jù)庫(kù)性能要求較高;
4、不需要高度的數(shù)據(jù)一致性;
5、對(duì)于給定key,比較容易映射復(fù)雜值的環(huán)境。
我們看,有些系統(tǒng),特別需要篩選,比如,篩選出所有女生大于20歲的,那么SQL型數(shù)據(jù)庫(kù),非常擅長(zhǎng)!因?yàn)橛行?、列的概念。但是有些系統(tǒng),真的不需要進(jìn)行那么多的篩選,比如站內(nèi)信,站內(nèi)信只需要存儲(chǔ)就好了。不需要篩選,那么就是Nosql擅長(zhǎng)的。
所以任何技術(shù)都有自己的應(yīng)用場(chǎng)景,并不單純的評(píng)判好與不好
mongodb命令行操作首先cmd啟動(dòng)后,輸入mongo 進(jìn)入到mongo環(huán)境,或者找到mongo的安裝路徑bin下有一個(gè)mongo.exe 雙擊運(yùn)行也可以
1.列出所有數(shù)據(jù)庫(kù):show dbs
2.使用某個(gè)數(shù)據(jù)庫(kù):use 數(shù)據(jù)庫(kù)名
3.如果想新建數(shù)據(jù),也是use ,use 一個(gè)不存在的,就是新建
注意:數(shù)據(jù)庫(kù)為了防止我們誤操作,并不會(huì)真的創(chuàng)建,如果想著你的創(chuàng)建,那么必須插入一個(gè)數(shù)據(jù),數(shù)據(jù)庫(kù)中不能直接插入數(shù)據(jù),只能往集合(Collection)中插入數(shù)據(jù),不需要?jiǎng)?chuàng)建集合,只需要寫(xiě)點(diǎn)語(yǔ)法:db.student.insert({"name“:”xiaoming"}) 系統(tǒng)發(fā)現(xiàn)studnet是一個(gè)陌生的集合的名字,所以就自動(dòng)創(chuàng)建了集合
4.查看當(dāng)前所在數(shù)據(jù)庫(kù):db
5.db.student.insert({"name":"zhnagsna","age":12,"sex":"man"}) student就是所謂的集合,集合中存儲(chǔ)著很多JSON。db.一個(gè)未知的集合名字,這個(gè)集合將自動(dòng)創(chuàng)建
6.列出當(dāng)前所有集合:show collections
7.列出數(shù)據(jù):db.student.find()
8.刪除數(shù)據(jù)庫(kù),刪除當(dāng)前所在的數(shù)據(jù)庫(kù):db.dropDatabase(); 注意大小寫(xiě)
9.更新數(shù)據(jù) db.集合名.update({name:"hr"},{name:"mnc"})
10.刪除集合中的數(shù)據(jù):db.集合名.remove(刪除的文檔的條件)
11.刪除集合:db.集合名.drop()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19175.html
摘要:實(shí)例教程是一個(gè)數(shù)據(jù)庫(kù)搜云庫(kù)教程專(zhuān)注于開(kāi)發(fā)技術(shù)的研究與知識(shí)分享方法中你也可以設(shè)置使用多個(gè)字段創(chuàng)建索引關(guān)系型數(shù)據(jù)庫(kù)中稱作復(fù)合索引。 上一篇文章練習(xí)了,MongoDB 的以下操作 安裝 MongoDB 服務(wù) 連接 MongoDB MongoDB 創(chuàng)建數(shù)據(jù)庫(kù) MongoDB 刪除數(shù)據(jù)庫(kù) MongoDB 插入文檔 MongoDB 刪除文檔 MongoDB 查詢文檔 MongoDB AND 條件...
摘要:當(dāng)一個(gè)原本運(yùn)行正常的成員無(wú)法訪問(wèn)到時(shí),該成員就處于的狀態(tài)。成員被從副本集中移除時(shí)就變成這個(gè)狀態(tài)。表示當(dāng)前服務(wù)器最后一次收到其他成員心跳的時(shí)間。表示同步的數(shù)據(jù)源。 副本集環(huán)境的搭建以及一些基本的操作我們都了解了,本文我們來(lái)看看這個(gè)數(shù)據(jù)復(fù)制到底是怎么實(shí)現(xiàn)的。 本文是MongoDB系列的第十七篇文章,了解前面的文章有助于更好的理解本文: 1.Linux上安裝MongoDB 2.Mon...
摘要:申明本文由筆者首發(fā)于深入淺出復(fù)制中文社區(qū)深入淺出復(fù)制由于自己開(kāi)了,所以將之前比較好的文章挪過(guò)來(lái)便于大家瀏覽。新增由于網(wǎng)絡(luò)問(wèn)題導(dǎo)致失敗重試機(jī)制。 申明 本文由筆者首發(fā)于InfoQ:《深入淺出MongoDB復(fù)制》MongoDB中文社區(qū):《深入淺出MongoDB復(fù)制》 由于自己開(kāi)了blog,所以將之前比較好的文章挪過(guò)來(lái)便于大家瀏覽。 綜述 筆者最近在生產(chǎn)環(huán)境中遇到許多復(fù)制相關(guān)問(wèn)題,查閱網(wǎng)上資...
摘要:二中常用命令顯示數(shù)據(jù)庫(kù)列表顯示當(dāng)前數(shù)據(jù)庫(kù)中的集合類(lèi)似關(guān)系數(shù)據(jù)庫(kù)中的表顯示用戶切換當(dāng)前數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù)。注意操作同時(shí)可以創(chuàng)建數(shù)據(jù)庫(kù),如果一個(gè)不存在的數(shù)據(jù)庫(kù)名,則執(zhí)行后,會(huì)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)。如果指定字段,則會(huì)更新該的數(shù)據(jù)。 ..............................................................................
摘要:集合名命名規(guī)范集合名不能是空字符串。集合名不能含有字符空字符,這個(gè)字符表示集合名的結(jié)尾。集合名不能以開(kāi)頭,這是為系統(tǒng)集合保留的前綴。有些驅(qū)動(dòng)程序的確支持在集合名里面包含,這是因?yàn)槟承┫到y(tǒng)生成的集合中包含該字符。 原始文章鏈接 - 我的博客:http://www.lovebxm.com/2017/0... MongoDB - 簡(jiǎn)介 官網(wǎng):https://www.mongodb.com/ ...
摘要:另外,支持對(duì)復(fù)制集的節(jié)點(diǎn)進(jìn)行靈活的配置,以適應(yīng)多種場(chǎng)景的需求。節(jié)點(diǎn)只參與投票,不能被選為,并且不從同步數(shù)據(jù)。節(jié)點(diǎn)不能被選為主為,并且對(duì)不可見(jiàn)。根據(jù)各集合的設(shè)置,在上為相應(yīng)集合創(chuàng)建。 復(fù)制集簡(jiǎn)介 Mongodb復(fù)制集由一組Mongod實(shí)例(進(jìn)程)組成,包含一個(gè)Primary節(jié)點(diǎn)和多個(gè)Secondary節(jié)點(diǎn),Mongodb Driver(客戶端)的所有數(shù)據(jù)都寫(xiě)入Primary,Second...
閱讀 2583·2021-09-30 09:48
閱讀 2576·2019-08-30 14:10
閱讀 2714·2019-08-29 11:22
閱讀 1848·2019-08-26 13:51
閱讀 2287·2019-08-26 12:02
閱讀 2427·2019-08-23 16:06
閱讀 3562·2019-08-23 14:06
閱讀 1101·2019-08-23 13:56