解决方法
由于您不控制所选择的算法,因此无法直接知道.但是,没有索引,SELECT应该是O(n)(表扫描必须检查每个记录,这意味着它将按照表的大小进行缩放).
使用索引,SELECT可能是O(log(n))(尽管它将取决于用于索引的算法和数据本身的属性,如果对于任何真实的表都适用).要确定您的任何表或查询的结果,您必须诉诸于分析现实世界的数据.
没有索引的INSERT应该非常快(接近O(1)),而UPDATE需要首先查找记录,因此会比您在那里的SELECT更慢(稍微).
当索引树需要重新平衡,更接近O(log(n))时,具有索引的INSERT可能再次位于O(log(n ^ 2))的ballpark中.如果UPDATE影响到索引行,则在SELECT成本之上也会发生相同的减速.
所有投注都是关闭的,一旦你在谈论JOIN的组合:你将不得不配置和使用您的数据库查询估计工具来阅读它.还要注意,如果这个查询是性能关键的,那么您应该随时重新生成文件,因为查询优化器使用的算法会随数据负载的变化而改变.
另一件要记住的事情是,大O不会告诉你每笔交易的固定成本.对于较小的表,这些可能高于实际工作成本.作为一个例子:单个行的跨网络查询的设置,拆除和通信成本一定会超过在小表中查找索引记录.