2009-12-20 49 views
4

在編寫我自己的平面文件數據庫時,我儘量保持文件大小盡可能小,當設計mySQL數據庫時,我將所有表放入一個數據庫(我相信mySQL將每個表存儲在它自己的文件中) 。我是新來的sqlite和我的倫理衝突 - 整個數據庫存儲在一個文件中。我應該擔心sqlite文件大小嗎?

我知道每個數據庫對於sqlite的建議大小約爲2GB,我不希望達到那個大小,但是有沒有好處來分割數據庫?例如,將數據庫拆分爲兩部分,一部分包含各種設置表(大量表,低行數),另一部分包含各種內容表(幾個表,每個表中有許多行)。

我對文件系統有很好的理解,並且知道我不應該對此有太多打擾,但是有一種直覺就是我無法想要分離數據庫。這是一種忽略或與之共存的感覺嗎?

+0

我相信你的MySQL假設是不正確;據我所知它是依賴於引擎的,InnoDB將有1個文件用於數據庫,還有一些文件用於模式。 – extraneon 2009-12-20 13:51:31

+0

MySQL的引擎通常不會將數據庫存儲爲每個文件一個;它更像是一個目錄。每個表格一個文件更典型,但每個引擎的細節會有所不同。 – MarkR 2009-12-20 15:38:56

回答

6

除非你打算在數據庫中存儲批次的數據,否則它確實不重要。如果要存儲大量數據(包括斑點和複雜關係),則不應該使用SQLite - 這是大型數據庫系統的用處。

SQLite存在一個簡單,快速和緊湊的方式來存儲未聯網的獨立應用程序中的結構化數據。您也可以將它用作您自己的應用程序的文件格式,因此您不必每次都重新創建輪子。我個人使用它來存儲首選項並確保它可以在不同的平臺上工作。您還可以使用標準工具來操作數據庫。

你知道,有一個術語叫做「over engineering」。有時使用簡單快速的方法並將事物分離成單獨的表格和模塊就可以了;有時不是。

+0

+1鏈接:) – cwap 2009-12-20 14:01:33

0

聽起來不像你的「設置」數據庫將佔有足夠的空間是值得的麻煩。您可以輕鬆地將這些設置表保存在主數據庫中,並緩存設置值以避免重複查詢這些表。

相關問題