微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL中数据库操作的复杂性?

有没有人有一个指导计算 postgresql中各种操作的复杂性?
如选择,加入(在from和where中),组,聚合,笛卡尔等产品?

我正在寻找Big O符号的东西.

您要求的不是也不可能存在,因为操作类型和复杂性之间没有1:1的关系.例如,考虑基本的选择操作.这可以映射到各种计划,计划员就每个计划的估计复杂性做出决策.例如,假设我们:
CREATE TABLE my_index_test (id int primary key); -- creates an index too!
EXPLAIN ANALYZE SELECT * FROM my_index_test where id = 0;

                                            QUERY PLAN                      

--------------------------------------------------------------------------------
---------------------------
Seq Scan on my_index_test  (cost=0.00..34.00 rows=2400 width=4) 
    (actual time=0.003..0.003 rows=0 loops=1)
  Total runtime: 0.045 ms
 (2 rows)

现在,在这种情况下,规划者(正确地)决定使用索引是不必要的复杂性.因此,即使是简单的查询也有多种可能性,Postgresql会尝试根据它所知道的选择最不复杂的计划.

一个例外是提交和回滚都具有O(1)复杂性.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐