與我的系統相比,專業數據庫 (MySQL) 的優勢在哪裡?
我有一個網站,我需要儲存有關客戶的數據,所以我做了以下系統:
我在伺服器上創建了一個名為database的文件夾。在其中我創建了一個名為customers的文件夾。在這個文件夾中,我儲存了幾個 JSON 文件,由客戶的 ID 標記。在 JSON 文件中,我儲存了客戶的數據。
這是該系統的一個小插圖:
📁database -> 📁customers -> 📄 customer_14.json -> 📄 customer_15.json -> ...
我覺得這個系統其實挺好的,實現起來也很容易。但是當我把它展示給我的朋友時,他說我應該使用MySQL而不是這個系統。他說我的速度慢、不安全、不可靠。
現在我想知道,像MySQL這樣的專業數據庫相對於這個系統的優勢在哪裡?有嗎?
首先,那裡有許多不同的數據庫。如果需要儲存 JSON 文件,MongoDB 等文件數據庫可能是比關係數據庫更好的選擇。
MySQL 是傳統的 SQL 關係型數據庫。
如果你有關係數據,這顯然是一件好事;它使描述關係和查找數據變得容易。
但是,如果您儲存與任何外部數據無關的 JSON 文件,這實際上是沒有意義的——這就是我們使用 MongoDB 等文件數據庫的原因。
文件數據庫可以提供搜尋、儲存和索引等工具。這意味著它們可能比基於文件系統的實現具有更好的性能。此外,它們可能是分佈式的、具有冗餘選項、鎖定和其他可能相關或不相關的特徵。
但是,如果您在 JSON 文件中實現了關係數據 - 隨著系統的增長,您將面臨一個痛苦的世界。規範化的一個方面是確保數據只存在於一個地方,而不是重複的。這使得更新和維護記錄變得容易——如果同一條資訊儲存在數千個不同的地方,這很困難——可能以不同的格式。
簡而言之:如果您有 5 個文件和一個使用者,那並不重要。但是數據庫允許可擴展性和網路上的統一訪問方法,從而可以輕鬆地在不同應用程序之間擴展和共享數據。
你的問題沒有固定的答案;這取決於您如何使用數據。但一般的答案是人們使用數據庫系統是因為它們使事情變得更容易,而不是因為他們很愚蠢或喜歡增加複雜性。