我剛剛學習SQL/SQLite,並計劃使用SQLite 3建立一個新網站。它正在取代XML,所以併發性並不是一個大問題。但是我想用我正在使用的技術儘可能保持性能。使用多個數據庫獲得性能有什麼好處,或者是將網站的所有數據保存在一個文件中的最佳性能?我問,因爲99%的數據在只有99%的時間是隻讀的,但最後的1%將寫入99%的時間。我知道數據庫沒有讀入並且爲每一個小的改變重新寫入整個文件,但是我想我想知道如果數據轉到單獨的5KB數據庫而不是部分〜250MB主數據庫。使多個SQLite數據庫提高性能是否有意義?
回答
其實你會有非常糟糕的表現
你應該嘗試在單一數據庫中的幾個表,有時它真的可以加快一些,但作爲首要任務的描述很一般 - 很難說究竟你需要什麼,嘗試單桌和多桌 - 測量速度
通過適當的性能調整,sqlite可以在63 300 inserts-per-second左右。除非你打算放大一些,否則我會避免預先優化。拆分爲兩個數據庫對我來說並不合適,如果您計劃在將來進行加入,那麼您將會陷入困境。特別是因爲你說併發不是一個大問題,所以我會避免使數據庫設計複雜化。
我不認爲我會打擾任何加入。小型數據庫僅用於存儲各種頁面的查看計數器。由於數據會隨着每個視圖被檢索和增加,因此我認爲將數據讀寫到一個小型數據庫會更快,然後從一個巨大的數據庫讀取數據,該數據庫中包含大量其他數據。至少這是我的想法。 –
此外,我對大數據庫的很多查詢可能需要一段時間,比如幾秒鐘。如果偶爾嘗試同時執行多個大的SELECT並將增量計數器寫入相同的數據庫,這有什麼關係嗎?我想這是我的更大的問題......這是一種併發性相關,但該網站真的不會得到那麼多的命中。 –
這是一個很好的觀點。這將是值得研究的寫入鎖如何工作的sqlite。說實話,如果你沒有共享需要一起查詢的共同數據,我認爲你使用兩個數據庫的方法沒什麼問題。如果寫作最終會經常鎖定數據庫,那麼將它們分開似乎是一個好主意。 – jnortey
- 1. 高性能數據庫意見
- 2. 如何提高SQLite數據庫的性能?
- 3. 如何提高android的SQLite數據庫的性能
- 4. 多個數據庫遷移提高性能
- 5. 是否有可能有一個遠程sqlite數據庫
- 6. 通過定義索引來提高iOS上Sqlite數據庫的性能?
- 7. Android提高SQLite性能?
- 8. 提高mysql數據庫性能
- 9. 提高SQL Server數據庫性能
- 10. 提高數據庫訪問的性能
- 11. 如何提高數據庫的性能?
- 12. 是否有可能使用SQLiteConnection庫檢查SQLite數據庫是否被鎖定
- 13. 是否有可能使用SQLite數據庫而不使用sqlite函數?
- 14. 是否有可能在Javascript中附加一個sqlite數據庫?
- 15. 是否有意義擁有多個NSPersistentStoreCoordinators?
- 16. matlab sqlite數據庫性能
- 17. 這個數據庫模型是否有意義?
- 18. 緩存是否總能提高性能?
- 19. 使用Oracle提示「FIRST_ROWS」提高Oracle數據庫性能
- 20. MongoDB性能 - 擁有多個數據庫
- 21. 提高數據表性能
- 22. ,是否有意義有多個ID,選擇屬性 「#ID1#ID2 {...」
- 23. 使用多進程向MySQL插入數據是否有意義?
- 24. 如何提高許多數據庫插入的性能?
- 25. SQLite是否適合個人數據庫?
- 26. 在服務器上緩存數據是否會提高性能?
- 27. 如何提高性能:數據庫還是文本文件?
- 28. 將巨大的MySQL數據庫拆分爲多個數據庫以提高性能有益嗎?
- 29. ContentAdapter SQLite數據庫多個數據庫
- 30. 哪個(高性能)數據庫與NHibernate?
那麼,我想我會使用兩個數據庫。其中一個大部分是隻讀的,另一個是寫很多的小文本(「很多」可能是一分鐘左右的十幾次)。 –
對於這種情況 - 這是很好的方法,但爲什麼你需要數據庫呢?也許簡單的文件也可以工作? –
嗯...引起Stackoverflow和Reddit上的人們說我會瘋狂地建立一個網站,每天有很多數據吞吐量和數千次點擊,而不是使用數據庫? :-p老實說...我用XML替換的系統偶爾會出現併發問題,這可能會在重新設計的XML模式的重新設計中得到解決,而不是讓巨大的文件被讀取和寫入很多,但人們談到了使用數據庫,SQLite似乎是一個很好的妥協。 –