SQLite3-存储小数字数组
在我的应用程序中,as用户的帐户上最多可以有64枚奖牌 每个奖牌有一个从0到3的值(需要2位) 问题:我应该如何在数据库中存储奖牌值 备选案文1:SQLite3-存储小数字数组,sqlite,Sqlite,在我的应用程序中,as用户的帐户上最多可以有64枚奖牌 每个奖牌有一个从0到3的值(需要2位) 问题:我应该如何在数据库中存储奖牌值 备选案文1: USER_ID MEDAL0 MEDAL1 MEDAL2 ... MEDAL64 1 0 1 2 0 备选案文2: USER_ID MEDALS 1 blob 此外,奖牌分为8个部分,通常一起进行,因此它们可以像这样组合在数据库中,但
USER_ID MEDAL0 MEDAL1 MEDAL2 ... MEDAL64
1 0 1 2 0
备选案文2:
USER_ID MEDALS
1 blob
此外,奖牌分为8个部分,通常一起进行,因此它们可以像这样组合在数据库中,但将位连接成一个整数:
USER_ID MEDALS1 MEDALS2 MEDALS3 ... MEDALS8
1 200260 2332 69188 0
所以我的问题是,这些选项在SQLite性能(速度和较小程度的内存)方面有什么不同?64列包含4位整数可以吗?最好有8列大整数?至于速度。有三种速度。写入速度(W)包括初始写入和更新、读取速度(R)和程序写入速度(P) 我更喜欢选项1 使用选项1,您可以获得最快的R和p,因为当您需要读写奖牌时,您只需选择并更新相应的字段。对于选项2,3,您必须读取额外的位。当您需要写入时,您必须读取旧位,更新它并保存新的合成值
首字母W乍看起来可能很慢,但实际上并非如此。Sqlite将检测数字有多大,并以最紧凑的方式存储它。至于速度。有三种速度。写入速度(W)包括初始写入和更新、读取速度(R)和程序写入速度(P) 我更喜欢选项1 使用选项1,您可以获得最快的R和p,因为当您需要读写奖牌时,您只需选择并更新相应的字段。对于选项2,3,您必须读取额外的位。当您需要写入时,您必须读取旧位,更新它并保存新的合成值
首字母W乍看起来可能很慢,但实际上并非如此。Sqlite将检测数字有多大,并以最紧凑的方式存储它。至于速度。有三种速度。写入速度(W)包括初始写入和更新、读取速度(R)和程序写入速度(P) 我更喜欢选项1 使用选项1,您可以获得最快的R和p,因为当您需要读写奖牌时,您只需选择并更新相应的字段。对于选项2,3,您必须读取额外的位。当您需要写入时,您必须读取旧位,更新它并保存新的合成值
首字母W乍看起来可能很慢,但实际上并非如此。Sqlite将检测数字有多大,并以最紧凑的方式存储它。至于速度。有三种速度。写入速度(W)包括初始写入和更新、读取速度(R)和程序写入速度(P) 我更喜欢选项1 使用选项1,您可以获得最快的R和p,因为当您需要读写奖牌时,您只需选择并更新相应的字段。对于选项2,3,您必须读取额外的位。当您需要写入时,您必须读取旧位,更新它并保存新的合成值 首字母W乍看起来可能很慢,但实际上并非如此。Sqlite将检测数字有多大,并以最紧凑的方式存储它。上详细介绍了如何存储和检索整数值。该段的结论是,整数可以以特定的长度存储,但在内存中使用时,它们是64位(有符号)整数 选项2可能是最灵活的。您可以添加更多类别的奖牌(3+位)和更多奖牌。它也可能比处理某种整数更不方便 选择1 64列包含4位整数可以吗 整数的最小存储类是磁盘上的1字节,因此除了运行时未使用的空间外,还有一半的空间将被浪费。但从编程的角度来看,这可能是最容易处理的 <选项> 3,我至少要考虑到一个更大的整数大小(<代码>无符号BigIt<代码> 64位),以减少粘贴位。 我至少要试试选项1。SQLite相当快,至少可以让您继续使用。上详细介绍了如何存储和检索整数值。该段的结论是,整数可以以特定的长度存储,但在内存中使用时,它们是64位(有符号)整数 选项2可能是最灵活的。您可以添加更多类别的奖牌(3+位)和更多奖牌。它也可能比处理某种整数更不方便 选择1 64列包含4位整数可以吗 整数的最小存储类是磁盘上的1字节,因此除了运行时未使用的空间外,还有一半的空间将被浪费。但从编程的角度来看,这可能是最容易处理的 <选项> 3,我至少要考虑到一个更大的整数大小(<代码>无符号BigIt<代码> 64位),以减少粘贴位。 我至少要试试选项1。SQLite相当快,至少可以让您继续使用。上详细介绍了如何存储和检索整数值。该段的结论是,整数可以以特定的长度存储,但在内存中使用时,它们是64位(有符号)整数 选项2可能是最灵活的。您可以添加更多的m类