我们在后端使用SqlTransaction类来访问存储在 MS-SQLServer 中的数据。
在某些情况下,我们肯定知道此事务没有更改任何数据(并且没有发生错误)。所以问题是:在这些情况下如何关闭交易?我们应该使用Commit()
or Rollback()
,还是不使用这两个功能或其他东西?目的是找到以“合理”的方式完成交易的最高效的方式。
我们在后端使用SqlTransaction类来访问存储在 MS-SQLServer 中的数据。
在某些情况下,我们肯定知道此事务没有更改任何数据(并且没有发生错误)。所以问题是:在这些情况下如何关闭交易?我们应该使用Commit()
or Rollback()
,还是不使用这两个功能或其他东西?目的是找到以“合理”的方式完成交易的最高效的方式。
我必须在 sqlite-database 中存储许多 SHA256 值,现在我想知道哪个 sqlite-affinity 是正确的。SHA256 值的输出长度为 256bit=32byte。我正在寻找可以处理此问题但也不会“浪费”磁盘空间的 sqlite-affinity,因为在我的情况下,我有很多数据集。我在这个网站上阅读了很多关于 sqlite 中数据类型的有用信息,但我仍然不知道哪种类型对于 SHA256 值是正确的。我更喜欢像“bytearray(32)”这样的东西,所以我认为varchar(32)
可能是那个。但后来我记得我可能无法将所有这些字节转换为可打印字符以将它们存储为字符数组。所以看来我必须使用Blob
.
不幸的是,并没有真正找到有关限制 sqlite 中的Blob
-size 以及 sqlite 如何在内部处理 blob 的任何有用信息。我想使用我的哈希值始终具有相同长度的信息来优化数据库的磁盘使用:我希望 sqlite 知道对于这个Blob
-column 它总是只需要保留 32 个字节,永远不会更多。所以我想使用类似Blob(32)
列类型的东西。这可能吗?如果是的话:这有意义还是有任何谬误?