簡體   English   中英

XPath的MySql與MongoDB一致的MySql對異常的結構要求

[英]MySql with XPath versus MySql in unison with MongoDB for unusual structure requirements

如果您的數據庫需要包含復雜的關系/約束 ,則您希望:

  • Option 1 :一個簡單的MySql結構,在一個表中具有XML字段,您可以使用XPath( ExtractValue() )查詢該結構。
  • Option 2 :相同的簡單MySql結構,外加一個單獨的MongoDB設置,其中包含與XML *等價的MongoDB,

為什么呢?


假設:

  • 如果需要刪除整個實體,則使用選項1會更容易(只需刪除整個元組)。
  • MongoDB查詢將比XPath更快。 但這需要在MySql查詢之后完成,除非在先前的查詢中已檢索到ID。
  • 使用選項2進行次要更新會更快/更輕松,因為使用MySql的XML函數UpdateXML()只能更新整個 XML。
  • 必須對選項2更加小心; 插入/更新時,如果MySql插入/更新查詢失敗,則必須確保不插入/更新MongoDB。
  • 忽略“簡單的MySql結構”部分(聯接等), ExtractValue()只能做很多事情(選項1); 我需要檢索大部分XML,然后在PHP / JS中進行其余操作。 而MongoDB可以處理更多。

筆記:

  • *加上與它所屬的MySql元組相對應的ID。
  • 如果我對我的任何假設有誤,請糾正我。

編輯:

無論哪種方式,它將是PHP或通過PHP的JS,我將用於與數據庫進行交互。

您絕對可以將結構存儲在MongoDB中。 通常,BSON比使用XML表示復雜的關系要容易得多/干凈(而且您也可以從Shell中清晰地讀取/編輯它)。 MongoDb中有很多原子操作,這些操作使修改變得容易快捷。

看一下這些就地文檔更新操作:

http://www.mongodb.org/display/DOCS/更新

您還可以拉出文檔的各個字段/部分:

http://www.mongodb.org/display/DOCS/Advanced+Queries

出於並發目的,如果您有多個同時進行更改的應用程序/線程,則也可以使用findAndModify。

http://www.mongodb.org/display/DOCS/findAndModify+Command

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM