我有一個sqlite數據庫用於存儲有關備份作業的信息。每次運行,由於將大約32,000個條目添加到特定的表中,它增加了約25mb。主鍵對SQLite性能的影響
此表是一個「映射表」,用於將某些信息鏈接到另一個表中的記錄......並且它有一個我不使用的主鍵(autoincrement int)。
sqlite將根據其值保留INT列的1,2,4或8個字節。該表只有3個額外的列,也是INT類型。
我在我的查詢中用作過濾器(WHERE)的列上向數據庫添加了索引。
在存在索引等情況以及所描述的情況下,主鍵在性能方面是否有用?
注意:性能對於此項目非常重要 - 但如果在32,000入門級別上保存10ms意味着額外需要10MB數據,則不會這麼做!
我主要贊同這一點。重要的想法是將數據庫保存在內存中,如果索引太大,那麼它可能很重要。 – Unknown 2009-08-06 07:32:39
@未知:對於一個普通的磁盤備份的內存緩存數據庫,未使用的索引不應該進入內存,如果他們這樣做,很快就會被驅逐。但是,是的,如果你正在構建一個完整的內存數據庫而沒有後備磁盤存儲,這些索引可能會傷害你。 – Thilo 2009-08-06 07:41:05