最近在看关于PostgreSQL内部原理的一些东西,并借助翻译软件,做一些翻译,整理成文档,以便自己能够快速理解的同时,加以记录。
在单表查询的开销估算中,关于索引扫描的启动开销,有一个等式,使用到了函数 ceil 和 log2。等式是这样写的:'start-up cost' = {ceil(log2(10000))+(1+1)*50}*0.0025=0.285
。
语法:
LOG(base, n):base是一个正整数,表示所求取的对数的底数;n是一个正整数,表示所要求的对数值。使用LOG函数时,我们将会获取到一个数值,该数值即为以base为底数,n的对数。
例:Log2(4)=Log2(22)=2
例:Log2(10000)=Log2(2x)=x=log(2,10000)
ceil 函数返回一个整数或大于参数值的最小整数。
postgres=# select log(2,10000);
log
---------------------
13.2877123795494494
(1 row)
postgres=# select ceil(log(2,10000));
ceil
------
14
(1 row)
postgres=# select (ceil(log(2,10000))+100)*0.0025;
?column?
----------
0.2850
(1 row)
postgres=#
标签:Log2,10000,log,ceil,PostgreSQL,用法,select,postgres
From: https://blog.51cto.com/baoyw/7123098