2013-10-17 94 views
3

我剛剛學習SQL/SQLite,並計劃使用SQLite 3建立一個新網站。它正在取代XML,所以併發性並不是一個大問題。但是我想用我正在使用的技術儘可能保持性能。使用多個數據庫獲得性能有什麼好處,或者是將網站的所有數據保存在一個文件中的最佳性能?我問,因爲99%的數據在只有99%的時間是隻讀的,但最後的1%將寫入99%的時間。我知道數據庫沒有讀入並且爲每一個小的改變重新寫入整個文件,但是我想我想知道如果數據轉到單獨的5KB數據庫而不是部分〜250MB主數據庫。使多個SQLite數據庫提高性能是否有意義?

回答

1
有50個000數據庫

其實你會有非常糟糕的表現

你應該嘗試在單一數據庫中的幾個表,有時它真的可以加快一些,但作爲首要任務的描述很一般 - 很難說究竟你需要什麼,嘗試單桌和多桌 - 測量速度

+0

那麼,我想我會使用兩個數據庫。其中一個大部分是隻讀的,另一個是寫很多的小文本(「很多」可能是一分鐘左右的十幾次)。 –

+0

對於這種情況 - 這是很好的方法,但爲什麼你需要數據庫呢?也許簡單的文件也可以工作? –

+0

嗯...引起Stackoverflow和Reddit上的人們說我會瘋狂地建立一個網站,每天有很多數據吞吐量和數千次點擊,而不是使用數據庫? :-p老實說...我用XML替換的系統偶爾會出現併發問題,這可能會在重新設計的XML模式的重新設計中得到解決,而不是讓巨大的文件被讀取和寫入很多,但人們談到了使用數據庫,SQLite似乎是一個很好的妥協。 –

1

通過適當的性能調整,sqlite可以在63 300 inserts-per-second左右。除非你打算放大一些,否則我會避免預先優化。拆分爲兩個數據庫對我來說並不合適,如果您計劃在將來進行加入,那麼您將會陷入困境。特別是因爲你說併發不是一個大問題,所以我會避免使數據庫設計複雜化。

+0

我不認爲我會打擾任何加入。小型數據庫僅用於存儲各種頁面的查看計數器。由於數據會隨着每個視圖被檢索和增加,因此我認爲將數據讀寫到一個小型數據庫會更快,然後從一個巨大的數據庫讀取數據,該數據庫中包含大量其他數據。至少這是我的想法。 –

+0

此外,我對大數據庫的很多查詢可能需要一段時間,比如幾秒鐘。如果偶爾嘗試同時執行多個大的SELECT並將增量計數器寫入相同的數據庫,這有什麼關係嗎?我想這是我的更大的問題......這是一種併發性相關,但該網站真的不會得到那麼多的命中。 –

+0

這是一個很好的觀點。這將是值得研究的寫入鎖如何工作的sqlite。說實話,如果你沒有共享需要一起查詢的共同數據,我認爲你使用兩個數據庫的方法沒什麼問題。如果寫作最終會經常鎖定數據庫,那麼將它們分開似乎是一個好主意。 – jnortey

相關問題