Sqlite 字符串与整数

Sqlite 字符串与整数,sqlite,Sqlite,我有点进退两难,我有一个巨大的非关系型sqlite数据库,其中有一个表,其中包含数百万个条目,这些条目使用它们的“ID”(一个很长的数字)在实体之间建立了关系。现在,这些条目创建了多个层次结构。我要做的是分别存储每个层次结构的数据,并使用临时表和索引。我开始怀疑,将数字作为字符串或整数进行索引是否有什么区别 简而言之,作为字符串的“43789164238”的索引是否比作为整数的相同数字工作得快?整数比字符串快。原因很简单。整数使用的空间比字符串少 整数介于2到8字节之间 字符串至少是4个字节加

我有点进退两难,我有一个巨大的非关系型sqlite数据库,其中有一个表,其中包含数百万个条目,这些条目使用它们的“ID”(一个很长的数字)在实体之间建立了关系。现在,这些条目创建了多个层次结构。我要做的是分别存储每个层次结构的数据,并使用临时表和索引。我开始怀疑,将数字作为字符串或整数进行索引是否有什么区别


简而言之,作为字符串的“43789164238”的索引是否比作为整数的相同数字工作得快?

整数比字符串快。原因很简单。整数使用的空间比字符串少

  • 整数介于2到8字节之间
  • 字符串至少是4个字节加上其中的值

希望这有帮助:)

我的猜测是,整数可能会稍微快一点,因为它比长字符串需要更少的存储空间-更少的存储意味着更少的IO意味着更高的速度…整数比字符串比较更快,占用的空间更少。按照普通sqlite表的工作方式,列将是查找表中某一行的最快方式—大约是查找其他索引列(除非是覆盖索引)的两倍—有用的阅读:是的,该字符串在该行存储中只有一个字节类型/长度字段(和11个字节的数据)。当然,仍然比整数大,比较慢。但是sqlite对字符串和整数的操作方式相同吗?@AlexandruMartalogu是的!原因很简单,整数使用的空间比字符串少,即使SQLITE也使用,因此速度更快。