1

在从 SQL 或 MySql 数据库中进行检索时,5 ish boolean 列或一列作为整数位标志会更快?

4

1 回答 1

0

这是我处理“标志”列的方法:

案例 1:我的标志/属性数量有限,不会发生显着变化。我使用布尔值,因为它们维护成本低并且(在任何值得其盐的数据库上)非常有效。事实上,在 SQL Server 上,如果您有 8 个或更少的位/布尔列,它们将占用 1 个字节。使用 16 位,您将拥有 2 个字节,依此类推。

可以通过手动将它们打包成一个整数来进行轻微优化,但仅限于某些用例(例如,如果我想控制特定的分组),并且它不是跨不同数据库引擎的非常便携的解决方案. 所以,在 99% 的情况下,我会避免这种想法。

案例 2:我有无限数量的标志/属性。也许现在这个数字是 5,但没有什么能阻止它最终变成 100 或 1000。在这种情况下,我使用了一种更“相关”的方法,即存储一个单独的标志表并将它们与一个连接表链接。

于 2013-06-19T19:06:25.887 回答