2014-01-28 90 views
0

我正在開發一個使用CodeIgniter的php應用程序。我打算將單個MySQL數據庫拆分爲多個sqlite數據庫。也就是說,一個數據庫(MySQL/PostgreSQL/SQLite)處理認證,每個用戶擁有一個持有與用戶相關信息的sqlite數據庫。我不使用任何連接,它將具有比寫入更多的讀取。每個用戶一個數據庫

爲了提高速度,將數據庫分割爲多個sqlite數據庫是一個好主意嗎?另外,擴展到多個服務器時會有問題嗎?我可以根據用戶使用重定向指向正確的服務器。

編輯: 決定使用MariaDB作爲我所有用戶的服務器。

+0

一般:不,這是一個可怕的想法。你有什麼特別的具體情況可以證明幾個SQLite數據庫比單個MySQL服務器或者它的集羣有明顯的優勢嗎?如果不是,它不會更快。 – deceze

+0

爲什麼不只是一行到用戶表中?對你來說這很糟糕嗎? –

+0

當數據庫規模增大時,索引大小會增加,並可能使整個網站變慢。通過將數據庫分成多個文件,增長率較低。 此外,如果我必須移動到不同的服務器,我可以使用相同的數據庫,而不是在具有當前轉儲的新服務器上重新創建。 –

回答

5

通過將數據拆分爲多個sqlite數據庫而不是速度,您將會獲得重大的頭痛和時間沉澱。不要這樣做,除非你知道你必須這樣做,並且可以用硬數字來證明它,而不是假設的情況。

如果您正在構建的系統具有某些價值(將用於商業用途等),則適用上述建議。當然,如果這只是一個玩具/培訓項目,歡迎您隨時隨地做任何事情,並從中吸取教訓。

+0

我打算讓每個用戶數據庫位於不同的用戶目錄中。所以對於用戶ID號,我可能有user_1.database。由於用戶ID是從主登錄中知道的,sqlite訪問將通過從用戶ID構建路徑來自動處理。 –

+0

我也擔心將數據庫移植到新服務器上。如果我必須移植到不同的服務器,SQL轉儲將是巨大的,sqlite每天可以處理100K點擊數,我可能不會很快達到這個數字,但是當達到極限時我不想擔心。 –

+0

SQL轉儲具有出色的壓縮比例,〜90%(給出或佔用幾個百分點)。轉讓之前只需將其壓縮。 :) –

相關問題