2016-12-12 24 views
0

我對AR和Sqlite有點新鮮。我正在處理一個大數據集,並努力找出優化數據庫速度和大小的好做法。AR與sqlite3:列設置限制對數據庫大小有任何影響?

例如,我存儲在列中的一個字節的整數,它幫助任何聲明列:

table.integer :field, limit: 1

這是否幫助sqlite的節省空間?

+0

設置限制要求文本'(x)'存儲在數據庫中,因此浪費空間。 ☺ –

回答

1

fine SQLite manual

2.存儲類和數據類型

存儲在SQLite數據庫(或操縱由數據庫引擎)的每個值具有以下的存儲類中的一種:

  • [...]
  • INTEGER。該值是一個有符號整數,根據值的大小存儲在1,2,3,4,6或8個字節中。
  • [...]

所以對於SQLite中的值存儲需求取決於本身的價值,而不是列類型。您的:limit選項將被SQLite驅動程序完全忽略,對於字符串同樣會忽略:limit,因爲SQLite沒有char(n)varchar(n)類型,它只有text

SQLite類型系統相當寬鬆,閱讀Datatypes in SQLite上的整個文檔部分將是一個不錯的主意。

+0

謝謝,我閱讀了文檔,所以我想確認我的解釋。要確定如何使用activerecord影響事物並不容易。 AR文檔不會告訴你,例如設置限制對SQLite沒有意義。 – nus

+0

短語「AR docs」正在慷慨:)關於IMO的重要細節,Rails文檔通常非常薄。 –

相關問題