小编zxd*_*dvd的帖子

为什么大网站不使用ocsp装订?

最近学习了一些关于ocsp的知识。我通过如下命令检查站点的 ocsp 装订:

$openssl s_client -connect www.stackoverflow.com:443 -status -servername www.stackoverflow.com

我发现我自己的网站和 stackoverflow 以及其他一些小网站都有 ocsp 设置。他们有OCSP Response Data指挥响应的能力。

但是当我检查一些大网站如 google.com、github.com、facebook.com 时,他们没有这样的字段。我明白了OCSP response: no response sent

那么为什么他们不使用它呢?

ssl https facebook ocsp ssl-certificate

5
推荐指数
1
解决办法
2175
查看次数

为什么Postgres更喜欢seq扫描而不是带有显式where条件的部分索引?

我有一个简单的查询,例如select * from xxx where col is not null limit 10。我不知道为什么Postgres更喜欢seq扫描,它比部分索引要慢得多(我已经分析了表格)。如何调试这样的问题?

该表有超过400万行。并满足了约350,000行pid is not null

我认为成本估算可能有问题。seq扫描的成本低于索引扫描。但是如何深入研究呢?

我有一个猜测,但不确定。非空行约占总行的10%。这意味着当seq扫描100行时,它可能会得到10行,这些行不为空。并且它认为seq扫描100行的成本低于索引扫描10行,然后随机获取10整行的成本。是吗?

> \d data_import
+--------------------+--------------------------+----------------------------------------------------------------------------+
| Column             | Type                     | Modifiers                                                                  |
|--------------------+--------------------------+----------------------------------------------------------------------------|
| id                 | integer                  |  not null default nextval('data_import_id_seq'::regclass) |
| name               | character varying(64)    |                                                                            |
| market_activity_id | integer                  |  not null                                                                  |
| hmsr_id            | integer                  |  not null default (-1)                                                     |
| site_id            | integer                  |  not null default (-1)                                                     |
| hmpl_id …
Run Code Online (Sandbox Code Playgroud)

database postgresql indexing database-performance postgresql-9.4

5
推荐指数
1
解决办法
351
查看次数

奇怪的行为,同时变量作为函数的输入和输出

对于以下代码,它似乎进入死循环.之后s, err := minusOne(s),根据日志信息缩短s.但之前的减号日志表明它从未改变过.

func minusOne(s string) (string, error) {
    if len(s) >= 0 {
        return s[1:], nil
    }
    return "", nil
}

func TestStr(t *testing.T) {
    s := "hello world"
    for {
        log.Println("before minus", s)
        s, err := minusOne(s)
        log.Println("after minus", s)
        if err == nil && len(s) == 0 {
            break
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我稍微改变它,它会像预期的那样工作.

s1, err := minusOne(s)
s = s1
Run Code Online (Sandbox Code Playgroud)

或者如果我删除在minusOne函数中返回的错误,它也可以.

s = minusOne(s)
Run Code Online (Sandbox Code Playgroud)

我实在无法理解.有人可以帮忙吗?

string variable-assignment go

1
推荐指数
1
解决办法
52
查看次数