【问题标题】:should I use integer or text on sqlite3我应该在 sqlite3 上使用整数还是文本
【发布时间】:2015-04-16 06:31:37
【问题描述】:

我是一名 Android 开发人员。我想在 SQLite3 上创建一个表,并且我想要一个布尔类型的列。我可以定义一列,类型是整数,值只使用0和1。我也可以使用类型为文本(字符)的列,使用值'T','F'。哪个更小更快?

【问题讨论】:

  • "INTEGER。该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。"我想用 1 个字节来存储一个 BOOL 还不错
  • 非常感谢。但是如果我使用文本类型,它会存储为UTF-8文本,'T'和'F'是ascii字符,也会使用一个字节,不是吗?
  • @DerGolem UTF-8 每个 ASCII 字符使用一个字节。正如您在documentation 中看到的那样,整数 0 和 1 使用 zero 字节(这些值由串行类型处理)。
  • @DerGolem 这就是我说“ASCII”的原因。
  • @CL 啊,好的。和往常一样,你的知识比我深。

标签: android sqlite boolean database-performance


【解决方案1】:

您应该使用整数,因为官方文档中建议这样做,

SQLite 没有单独的布尔存储类。相反,布尔值存储为整数 0(假)和 1(真)。

See Docs

【讨论】:

  • @user3717061 我很高兴它有帮助,如果我的回答有帮助,您可以将其标记为已接受的答案..
猜你喜欢
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
相关资源
最近更新 更多