我正在尋找快速有效的數據存儲來建立我的基於PHP的網站。我知道MySql。我可以在服務器根目錄中使用JSON文件而不是MySQL數據庫嗎?如果是,那麼最好的辦法是什麼?我們可以使用JSON作爲數據庫嗎?
回答
你可以用任何單一的文件,包括一個JSON文件,如:
鎖定它以某種方式(谷歌PHP文件鎖定,這可能是由於添加的參數文件打開功能或改變功能一樣簡單名稱鎖定版本)。
從文件中讀取數據並將其解析爲內部數據結構。
(可選)修改內部數據結構中的數據。
如果修改了數據,請將該文件截斷爲0長度並向其寫入新數據。
只要你能,其他請求可能會等待解鎖文件...
您可以繼續使用在內部結構中的數據來渲染頁面,只記得它可能會過時的一旦釋放文件鎖定,其他HTTP請求就可以修改它。
此外,如果從用戶的web表單修改數據,請記住,它可能在兩者之間已被修改。就像加載用戶詳細信息的頁面進行編輯,然後其他用戶刪除該用戶,然後編輯器嘗試保存更改的詳細信息,並且應該可能會出錯,而不是重新創建已刪除的用戶。
注意:這是非常低效的。如果您正在構建一個網站,您期望的不止是10個併發用戶,您必須使用更復雜的方案,或者只使用現有的數據庫...此外,您不能擁有太多數據,因爲解析JSON並生成修改JSON需要時間。
只要你在某一時刻只有一個用戶,它只會越來越慢作爲數據量的增長,但隨着用戶數量的增加,更多的用戶意味着更多的都要求和更多的數據,東西開始得到成倍慢,你很快觸及跌停,其中HTTP請求開始過期之前的文件都可以處理的請求......
在這一點上,不要試圖破解它,使其速度更快,但而是選擇一些現有的數據庫框架(SQL或nosql或基於文件)。如果你開始一起攻擊你自己,你最終會重新發明輪子,通常很糟糕:-)。那麼,除非它只是編程練習,但即使如此,它可能會更好地學習使用一些現有的框架。
良好的寫作。設計有效和長期運行的數據存儲是困難的。我記得Brian Aker離開MySQL開始了Drizzle;他的博客充滿了與之相關的所有這些有趣的設計挑戰和決定。我給他留下了一些關於Cassandra的評論,這似乎是一個全面的基於JSON的分佈式數據存儲。 –
新版本的IBM Informix 12.10 xC2現在支持JSON。
檢查鏈接:http://pic.dhe.ibm.com/infocenter/informix/v121/topic/com.ibm.json.doc/ids_json_007.htm
該手冊說它與MongoDB驅動程序兼容。
關於Informix的JSON兼容性
應用程序使用面向JSON的查詢語言,通過 MongoDB的創建,可以存儲在Informix®數據庫的數據進行交互。 Informix數據庫服務器還提供內置的JSON和BSON(二進制 JSON)數據類型。
您可以使用MongoDB社區驅動程序在Informix中插入,更新和查詢 JSON文檔。
不確定,但我相信您可以使用Innovator-C版(免費用於生產)來免費測試和使用它,用於生產環境。
- 1. 我可以使用JSON數組作爲小型數據庫嗎?
- 2. 我們可以使用solr索引圖形數據庫嗎?
- 3. 除了我們可以在android中使用的數據庫嗎?
- 4. 我們可以在piwik中使用MS sql數據庫嗎?
- 5. 我們可以在Android上使用RecordStore數據庫嗎?
- 6. 我們可以使用SQLAlchemy獲取postgres數據庫轉儲嗎?
- 7. 我們可以使用odbc只與java連接數據庫嗎?
- 8. 我們可以使用MemberFunction類型作爲模板參數嗎?
- 9. 我可以使用Scala lift-json庫將JSON解析爲Map嗎?
- 10. Android GCM:我們可以將數據作爲完整的JSON結構嗎?
- 11. 我們可以使用angularjs作爲工作門戶嗎?
- 12. 我們可以在JSON數組中使用null嗎?
- 13. 我可以只發布JSON作爲Angular數據嗎?
- 14. 我們可以使用Ember數據使用多態關係嗎?
- 15. 我可以在ROR中使用文本文件作爲我的數據庫嗎?
- 16. 我們可以使用json文件作爲清單中的主機嗎
- 17. 我可以爲數據庫使用硬編碼路徑嗎?
- 18. 我們可以預測R中的json數據嗎?
- 19. 我們可以在日曆中加載JSON數據(事件)嗎?
- 20. 我們可以使用谷歌電子表格作爲後端數據庫
- 21. 我們可以在Cubism上使用自定義的JSON數據嗎?
- 22. 我們仍然可以使用routes = {routes}作爲react-router v4嗎?
- 23. Java:我們可以使用DAO作爲單例實例嗎?
- 24. 我們可以在Django中使用很多views.py作爲Controller嗎?
- 25. 我們可以使用GWT RPC Servlet作爲Oauth回調URL嗎?
- 26. 我們可以使用主鍵作爲普通列嗎?
- 27. 我們可以使用Dukescript作爲小程序替代嗎?
- 28. 我們可以使用json-simple-1.1.1.jar庫將字符串轉換爲JSON數組嗎?
- 29. skobbler我可以緩存json數據嗎?
- 30. 我們可以使用沒有啓用數據庫級聯的Hibernate Cascade嗎?
我應該寫答案在這裏或在英語嗎? –
好的沒問題:) :) – sami
Mongo DB?這就像一個JSON數據庫... – McGarnagle