我在哪里可以了解MySQL查询的时间复杂性(大O符号)?

我在哪里可以了解MySQL查询的时间复杂性(大O符号)?,mysql,sql,time-complexity,big-o,complexity-theory,Mysql,Sql,Time Complexity,Big O,Complexity Theory,我对MySQL查询的复杂性感兴趣,比如选择id=1的东西。我所说的不仅仅是一个例子,而是一些文档,在这些文档中,我可以阅读MySQL是如何实现这些查询的。有吗?如果您能分享这一条,我将不胜感激。我将回答您的问题:MySQL中以下查询的时间复杂度是多少 SELECT something FROM t WHERE id = 1; 基本上有两种可能性:Ologn和On。如果数据库在id上有一个索引,那么查找是Ologn。因为索引存储在内存中,表的大小通常低于(比如)万亿行,所以这通常近似为O1。读取

我对MySQL查询的复杂性感兴趣,比如选择id=1的东西。我所说的不仅仅是一个例子,而是一些文档,在这些文档中,我可以阅读MySQL是如何实现这些查询的。有吗?如果您能分享这一条,我将不胜感激。

我将回答您的问题:MySQL中以下查询的时间复杂度是多少

SELECT something
FROM t
WHERE id = 1;
基本上有两种可能性:Ologn和On。如果数据库在id上有一个索引,那么查找是Ologn。因为索引存储在内存中,表的大小通常低于(比如)万亿行,所以这通常近似为O1。读取索引和设置查询的常量部分决定了阅读索引的时间

另一种可能性正在出现。这意味着需要读取每一行以找到具有正确id的行。您根本没有限制,因此即使第一行符合条件,也需要读取每一行


可以想象,如果这样一个简单的查询有三个可能的正确答案,那么更复杂的查询就更难分析了。如果你真的想了解性能,你需要学习复杂性理论,数据库实现的算法,以及内存内和内存外数据对算法的影响。

我将回答你的问题:MySQL中以下查询的时间复杂性是多少

SELECT something
FROM t
WHERE id = 1;
基本上有两种可能性:Ologn和On。如果数据库在id上有一个索引,那么查找是Ologn。因为索引存储在内存中,表的大小通常低于(比如)万亿行,所以这通常近似为O1。读取索引和设置查询的常量部分决定了阅读索引的时间

另一种可能性正在出现。这意味着需要读取每一行以找到具有正确id的行。您根本没有限制,因此即使第一行符合条件,也需要读取每一行


可以想象,如果这样一个简单的查询有三个可能的正确答案,那么更复杂的查询就更难分析了。如果您真的想了解性能,您需要了解复杂性理论、数据库实现的算法,以及内存内和内存外数据对算法的影响。

复杂性理论并不特定于特定的数据库。从理论开始:。然后您可以通过查看MySQL文档了解MySQL使用的算法。从理论开始:。然后,您可以通过查看MySQL文档了解MySQL使用的算法。