mysql - 在主键上搜索时从 MySQL 数据库中获取一行的时间复杂度是多少?

标签 mysql database complexity-theory time-complexity

我有一个庞大的数据库,想要快速检索数据(只根据主键搜索)。数据库的时间复杂度为 O(1) 是因为它就像一本字典吗? (因为只会获取一行,因为我只在主键上进行搜索)

最佳答案

可以通过不同的方式在主键中搜索一条记录,具体取决于查询优化器决定的最有效方式。对于小表,可以选择索引扫描。但是,对于大多数表,更有可能进行索引查找。这是一个二进制搜索。

二分查找的时间复杂度大概在 O(log n) 左右。

从索引中检索到一个键后,获取单个记录的非键字段将是 O(1)。

关于mysql - 在主键上搜索时从 MySQL 数据库中获取一行的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358356/

相关文章:

java - 这个(简单的)代码的时间复杂度是多少?

mysql - 排除不同 PC 之间的 MySQL Illegal Mix of Collat​​ion 错误

MySQL 自动将字符串转换/转换为数字?

MYSQL 更新两个表的值

sql - 操作完成前超时时间已过或服务器未响应

c# - 为什么 SortedSet<T>.GetViewBetween 不是 O(log N)?

algorithm - 如何有效计算算法的时间复杂度?

MySQL语法错误异常 : Unknown column 'John' in 'where clause'

mysql - 如何找出 MySQL 中的默认字符集/排序规则

database - 我如何从 Yahoo! 获取和比较股票报价?和谷歌?