数据库读取复杂度

Database read complexity

我在 SQL 中有一个关系 table,它将用户与权限相关联。处于多对多关系中间也是如此。

table 有其正确的索引和外键。

用户属于组,所以我想知道保持组-权限之间的关系而不是用户-权限之间的关系是否会更有效,这样我在 table,所以我想知道性能如何而不是其他方式。

最后我的问题是:在数据库中读取table的复杂度如何?

我很确定它是 "theorically" O(1) 但实际上更像是 O(nlogn) 或 o(n) 因为它必须以某种方式索引数据。

顺便说一下,我正在使用 SQL 服务器数据库管理系统,但我很确定答案适用于 SQL、mySQL 等(不包括非关系数据库管理系统,例如Mongo)

您甚至无法知道 "theoretically" 在数据库中读取 table 的复杂性,因为每个 table 都与另一个不同。

一个可以有 2 列,另一个可以有 200,一个有 10 条记录,另一个可以有 1 亿,一个可以有索引,另一个可以没有和 ETC。

这会影响复杂性,所以每个案例都是如此。

此外,是的,如果您的用户被分成组(并且同一组中的两个人具有相同的权限)那么拥有关系的权利就更大

组 > 权限

用户 > 群组

比你所做的要多,因为如果你想要(而且你可能会)添加或删除一个组权限,在你的情况下它可能会很复杂并且需要不必要的加入和资源,而不是仅仅改变一个权限组.

性能预测,再说一次,我不能告诉你