導航:首頁 > 數據行情 > mongodb股票資料庫設計

mongodb股票資料庫設計

發布時間:2022-06-30 03:23:29

⑴ mongodb 資料庫結構 怎麼畫

其實和普通的關系型數據結構差不多,可以用關系型資料庫思維去試著畫。

⑵ 請問使用mongodb資料庫有哪些優勢

下面是一個瑭錦TANJURD總結 MongoDB 優缺點的列表,希望對打算使用 MongoDB 的同學,能有一些作用:
優勢:
快速!(當然,這和具體的應用方式有關,通常來說,它比一般的關系型資料庫快5位左右。)
很高的可擴展性 – 輕輕鬆鬆就可實現PB級的存儲(但是可能我們並不需要PB級的存儲,10TB可能就夠了)
他有一個很好的 replication 模式 (replica sets)
有很完善的Java API
他的存儲格式是Json的,這對Java來說非常好處理,對javascirpt亦然。
運維起來非常方便,你不用專門為它安排一個管理員。
它有一個非常活躍的社區(我提出的一個bug在20分鍾內就能得到修復。多謝Elliot)
他的版本控制非常清楚。
MongoDB 背後的公司(10gen)已經准備好了明天在 MongoDB 上面的投入的資金了。
劣勢
應用經驗缺乏,我們都沒有相關NoSQL 產品的使用經驗。
項目相對來說還比較新。
和以往的存儲相比,數據的關系性操作不再存在。

⑶ mongodb資料庫有哪些優勢

1. 文檔存儲
數據存儲以BSON/JSON文檔,這對於Web應用程序有很大的意義。開發者API喜歡以JSON形式傳輸,這使得整個項目的數據表示可採用統一的模型。所有這一切都無需任何前期架構設計。

2. 可擴展性
MongoDB被用在一些規模龐大的環境中,FourSquare/Craiglist都在使用它。通過分片數據縮放處理理論上可實現更高的吞吐量。

3. 簡單的復制
就像分片技術一樣,MongoDB范圍內復制過程同樣簡單好用,在副本機器上還有大量的復制選項。靈活的功能可滿足用戶應用的需求。

4. 易於查詢
MongoDB以文檔的形式存儲數據,不支持事務和表連接。因此查詢的編寫、理解和優化都容易得多。簡單查詢設計思路不同於SQL模式,嵌入文檔在特定的環境下可得到更好的查詢,然而這需要先加入集合。如果需要執行多個請求到資料庫則需要加入其到客戶端。在MongoDB時ODM工具(如Doctrine2)將發揮自身的優勢。

5. 安全性
由於MongoDB客戶端生成的查詢為BSON對象,而不是可以被解析的字元串,所以可降低受到SQL注入的攻擊的危險。最常見的攻擊類型為針對Web應用程序的攻擊,在MongoDB上使用Doctrine2 ODMs 查詢語言可減輕攻擊風險。

6. 支持
用戶在選擇資料庫時總是喜歡積極和充滿活力的,這點非常重要。MongoDB在業界有非常大的影響力,用戶也會定期的組織活動。MongoDB的標簽在StackOverFlow是非常活躍的。你永遠不會陷入困境,因為總有人與你討論並解決問題。

7. 價格
MongoDB是免費的!

當然遠不止這些優勢,但是也有很多劣勢。

⑷ mongodb 設計原則 一般內嵌多少層

讓我們回顧下這些方案
你可以採取內嵌,或者建立one端或者N端的引用,也可以三者兼而有之。
你可以在one端或者N端冗餘多個欄位
下面這些是你需要謹記的:
1、優先考慮內嵌,除非有什麼迫不得已的原因。
2、需要單獨訪問一個對象,那這個對象就不適合被內嵌到其他對象中。
3、數組不應該無限制增長。如果many端有數百個文檔對象就不要去內嵌他們可以採用引用ObjectID的方案;如果有數千個文檔對象,那麼就不要內嵌ObjectID的數組。該採取哪些方案取決於數組的大小。
4、不要害怕應用層級別的join:如果索引建的正確並且通過投影條件(第二章提及)限制返回的結果,那麼應用層級別的join並不會比關系資料庫中join開銷大多少。
5、在進行反範式設計時請先確認讀寫比。一個幾乎不更改只是讀取的欄位才適合冗餘到其他對象中。
6、在mongodb中如何對你的數據建模,取決於你的應用程序如何去訪問它們。數據的結構要去適應你的程序的讀寫場景。

⑸ 如何在MongoDB中建立新資料庫和集合

一、創建Mongodb資料庫

由於Mongodb不是關系型資料庫文件,實際上,它並不存在傳統關系型資料庫中的所謂「資料庫」的概念,但不用擔心,當你第一次新增數據時,mongodb就會以collection集合的形式進行保存和新建,而不需要你手工去新建立。下面是例子:

1)列出當前的資料庫
MongoDB shell version: 1.8.1
connecting to: test
> show dbs
admin 0.03125GB
local (empty)
可以使用show dbs來列出當前有多少個資料庫,上面看到的是有兩個,分別是admin和local。

2) 定義新的資料庫名
我們通過使用「use new-databasename」的語法去使用一個新的資料庫,注意,即使你的資料庫還沒建立起來,依然可以這樣使用,因為mongodb會在真正插入了數據後,才會真正建立起來。
>use mkyongdb
switched to db mkyongdb
> show dbs
admin 0.03125GB
local (empty)
注意,在use mkyongdb後,mkyongdb實際上還沒真正建立起來,只是表明目前是在使用mkyongdb了。

3)保存數據
定義一個collection,名為「users」,然後插入數據,如下:
> db.users.save( {username:"mkyong"} )
> db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
>
> show dbs
admin 0.03125GB
local (empty)
mkyongdb 0.03125GB

可以看到,用db.users.find()可以找出已插入的數據。這個時候,名為「users」的collection已經建立起來了,同時,資料庫mkyongdb也建立起來了。轉載,僅供參考。

⑹ 怎麼用mongodb創建資料庫

use 命令

MongoDB use DATABASE_NAME 用於創建資料庫。該命令將創建一個新的資料庫,如果它不存在,否則將返回現有的資料庫。

語法:

use DATABASE 語句的基本語法如下:
use DATABASE_NAME

示例:

如果想創建一個資料庫名稱 <mydb>, 那麼 use DATABASE 語句如下:
>use mydb
switched to db mydb

要檢查當前選擇的資料庫使用命令 db
>db
mydb

如果想檢查資料庫列表,使用命令show dbs.

>show dbs
local 0.78125GB
test 0.23012GB

創建的資料庫mydb 列表中是不存在的。要顯示的資料庫,需要把它插入至少一個文件。
>db.movie.insert({"name":"tutorials yii"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

在 MongoDB 默認資料庫測試。如果沒有創建任何資料庫,然後集合將被存儲在測試資料庫。

⑺ mongodb資料庫適合做什麼

mongodb眾所周知不支持事務,所以需要強事務的業務根本不能考慮mongodb。
mongodb的優勢就是文檔存儲:
1. 業務經常變動,需要不時的添加欄位,那麼mongodb比較適合,關系型資料庫添加欄位的復雜度也還好
2. 嵌套文檔,業務數據比較復雜,適合嵌套文檔式存儲,那麼mongodb非常合適,這個關系型資料庫比較難搞,雖然MySQL和pg也有文檔存儲,但MySQL的不成熟,pg畢竟現在生產中使用還是偏少,個人也不了解,這里不談。但這不僅僅這一點優勢,具體下面會細說。
3. upsert支持,查詢速度也不慢
4. 高可用的副本集支持
5. 查詢語法非常豐富,嵌套文檔查詢功能非常強大,不是重度用戶可能不能理解
下面說說一個具體的使用事例:
項目的一條數據在10kb左右,如果使用關系型資料庫那麼需要將這條數據拆分成大概幾百條左右,建造多個表,設計較復雜,這種數據大概在一百萬條左右,想想拆分後在十幾億的數據量就可怕。打平後的數據什麼DB也都可以拿下,只是一百萬變十幾億比較恐怖而已。
如果採用MySQL存儲,每次查詢需要使用外鍵查詢多個表,從這些表中拉取數據,性能肯定要下降很多,比不上只在一個表查詢,而且只拉取少兩個數量級的數據。查詢也還好,業務允許可以對結果做緩存,放到redis里去。
但是重點來了,需求要增量更新部分數據,這時候需要更新多個表,根本沒法做到原子性(注意事務不是原子操作),當然也可以使用cas等技術補償,達到最終一致性。但使用mongodb存儲只需要update一條數據,對相應的嵌套文檔中內容更新,可以做到原子性,是不是很方便?
推薦學習《python教程》
具體說說該項目的難點,查詢無法使用緩存,可能會很吃驚,但是業務決定了確實做不了,而且增量更新的量達到上萬的QPS,如果不能保證原子性想想多麼可怕!
所以mongodb在這里幫了大忙,關系型資料庫解決不了這個難題。
有人可能要問,mongodb沒有事務,上游數據寫入也會有問題,你不可能所有數據都存一個表吧?
當然不是的,我們mongodb里的數據是從MySQL中清洗出來存到mongodb中的,mongodb只做單點的業務需求,綜合的數據還是在MySQL中。
此項目我們用了上百個副本集,保證系統的高可用,這些副本集配置只要一條shell就搞定,如果用MySQL的主從不知道怎麼配(我自己不懂),估計DBA得忙死,而該項目完全不需要也沒用到DBA。
說了這么多mongo的優點,也說說他的缺點:
1. 查詢優化器和MySQL沒法比
2. 不支持reload,只能冷重啟,初始化配置的時候比較麻煩
3. 沒有事務,不敢存儲第一手數據,多用來做備份數據的存儲
mongodb可以做很多事情,取決於你腦洞,性能不差,存一些相對不重要的數據,mongodb嵌套文檔功能強大,多看看官方文檔挖掘挖掘有用信息,每次都能發現驚喜。

⑻ mongodb的數據模塊與傳統的資料庫模型有什麼區別

mogodb是非關系型(NoSQL)資料庫,它文檔型資料庫。

我用過mongodb做了個小項目練習,我簡單說說(因為我也了解不深)它與傳統資料庫的區別吧:

最基本的區別就是數據模型的區別:

  1. 傳統資料庫 從大到小為資料庫,表,行。而mongodb是:資料庫,集合,文檔,BSON(類似json的二進制數據)。

  2. 傳統資料庫需要預定義表結構(一經定義,不能改變),而mongodb不需要,而且文檔結構可變化(比如說用來相關的文檔是放在同一個集合的,但同一個集合的文檔不一定結構都是相同的)

  3. 應該還有,想不起來了。

數據模型不同,對應的查詢方式也不同。傳統的資料庫查詢方式都是sql,而mongodb的查詢方式和sql完全不一樣。

還有其他的,如提高可靠性的方案,原子操作的級別等等也不一樣。

傳統資料庫的一些概念在mongodb是不存在的。

設計資料庫的時候也不一樣,傳統資料庫在設計時會進行範式化規范化,而mongodb資料庫進行設計時候往往會反範式。


下面是從網路拿來的:

對於NoSQL並沒有一個明確的范圍和定義,但是他們都普遍存在下面一些共同特徵:

  1. 不需要預定義模式:不需要事先定義數據模式,預定義表結構。數據中的每條記錄都可能有不同的屬性和格式。當插入數據時,並不需要預先定義它們的模式。

  2. 無共享架構:相對於將所有數據存儲的存儲區域網路中的全共享架構。NoSQL往往將數據劃分後存儲在各個本地伺服器上。因為從本地磁碟讀取數據的性能往往好於通過網路傳輸讀取數據的性能,從而提高了系統的性能。

  3. 彈性可擴展:可以在系統運行的時候,動態增加或者刪除結點。不需要停機維護,數據可以自動遷移。

  4. 分區:相對於將數據存放於同一個節點,NoSQL資料庫需要將數據進行分區,將記錄分散在多個節點上面。並且通常分區的同時還要做復制。這樣既提高了並行性能,又能保證沒有單點失效的問題。

  5. 非同步復制:和RAID存儲系統不同的是,NoSQL中的復制,往往是基於日誌的非同步復制。這樣,數據就可以盡快地寫入一個節點,而不會被網路傳輸引起遲延。缺點是並不總是能保證一致性,這樣的方式在出現故障的時候,可能會丟失少量的數據。

  6. BASE:相對於事務嚴格的ACID特性,NoSQL資料庫保證的是BASE特性。BASE是最終一致性和軟事務。

NoSQL資料庫並沒有一個統一的架構,兩種NoSQL資料庫之間的不同,甚至遠遠超過兩種關系型資料庫的不同。可以說,NoSQL各有所長,成功的NoSQL必然特別適用於某些場合或者某些應用,在這些場合中會遠遠勝過關系型資料庫和其他的NoSQL。

⑼ 阿里雲mongodb 怎麼創建資料庫

use
命令
MongoDB
use
DATABASE_NAME
用於創建資料庫。該命令將創建一個新的資料庫,如果它不存在,否則將返回現有的資料庫。
語法:
use
DATABASE
語句的基本語法如下:
use
DATABASE_NAME
示例:
如果想創建一個資料庫名稱
<mydb>,
那麼
use
DATABASE
語句如下:
>use
mydb
switched
to
db
mydb
要檢查當前選擇的資料庫使用命令
db
>db
mydb
如果想檢查資料庫列表,使用命令show
dbs.
>show
dbs
local
0.78125GB
test
0.23012GB
創建的資料庫mydb
列表中是不存在的。要顯示的資料庫,需要把它插入至少一個文件。
>db.movie.insert({"name":"tutorials
yii"})
>show
dbs
local
0.78125GB
mydb
0.23012GB
test
0.23012GB

MongoDB
默認資料庫測試。如果沒有創建任何資料庫,然後集合將被存儲在測試資料庫。

閱讀全文

與mongodb股票資料庫設計相關的資料

熱點內容
恆生電子與中國軟體股票行情 瀏覽:191
晨星股息領先指數etf股票走勢 瀏覽:410
萬達信息股票今天 瀏覽:686
保險投資股票收益率 瀏覽:749
模塑科技股票股 瀏覽:261
股票與資產證券化區別 瀏覽:767
股票st預報 瀏覽:167
華文食品股票上市時間價格 瀏覽:365
股票投資分析經濟周期 瀏覽:84
金元證券股份有限公司股票代碼 瀏覽:968
股票封漲停榜的買單不多 瀏覽:98
學習股票軟體app 瀏覽:525
股票k線什麼顏色代表上漲 瀏覽:489
股票退市到三板還有意義嗎 瀏覽:131
股票投資實踐報告總結 瀏覽:199
帶星號st股票多長時間停止上市 瀏覽:936
暴風集團股票會退市么 瀏覽:312
從wind股票和財務數據 瀏覽:883
華中智能股票預警系統手機版下載 瀏覽:675
科倫葯業股票購買時間 瀏覽:144