在这个候选答案中,断言它JOIN比LEFT JOIN在涉及某些WHERE子句的某些情况下更好,因为它不会混淆查询规划器并且不是"毫无意义".断言/假设是对任何人都应该是显而易见的.
请进一步解释或提供进一步阅读的链接.
允许和/或合理地将主PostgreSQL 9.2服务器配置为NOT存档但是执行流复制.配置如下:
wal_level = hot_standby
archive_mode = off
Run Code Online (Sandbox Code Playgroud)
"从属"服务器(热备用)是否可以配置为存档WAL段?
wal_level = hot_standby
hot_standby = on
archive_mode = on
Run Code Online (Sandbox Code Playgroud)
这将允许主服务器上的归档网络流量减少一半(复制但不归档).这似乎是合理的,文档似乎支持这种配置,但我更喜欢保证我们有一个良好的配置.
我刚发现join_collapse_limit一直在阻止PostgreSQL规划器找到更好的连接顺序.在我的情况下,将限制增加到10(从默认值8)允许规划人员将搜索时间从大约30秒提高到大约1毫秒,这是更可接受的.
文档表明,将此设置为"太高"可能会导致计划时间过长,但是甚至没有提供关于规划步骤可能对各种值进行多长时间的"经验法则".我理解一般问题是指数时间,但我找不到确定实际计划时间的方法,除非它只是运行所需的时间ANALYZE SELECT ....如果是这种情况,我认为现代计算机的默认值8非常低,因为我可以发现8到10之间的计划速度没有差异.
问题:
1)如何衡量计划时间?
2)大约有多高可以join_collapse_limit并且仍然期望计划花费不到几百毫秒?
场景:使用 PHPUnit 运行大量测试,并且一些测试(比如 1544 个中的 537 个)在几分钟后失败。变化很小,不太可能影响以前的测试,我希望能够跳过前 536 次测试,做这样的事情来“从我离开的地方开始”:
phpunit --skip=536
Run Code Online (Sandbox Code Playgroud)
当然,我最终会运行所有测试,但现在,我不想等待很多分钟才能回到损坏的测试。我知道我可以运行一个套件,但是如果还有几十个套件需要测试,那将是乏味/无益的。
有办法吗?或者更接近的东西?
PHP错误日志通常如下所示:
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ... , referer: https://192.168.0.21/blah/blah
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ... , referer: https://192.168.0.21/blah/blee
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它们看起来像这样?
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blah, ...
[Tue Sep 02 15:46:13 2014] [error] [client 192.168.0.105] blah, blee, ...
Run Code Online (Sandbox Code Playgroud)
我尝试了$_SERVER['HTTP_REFERER']='';但是(毫不奇怪)没有帮助.
postgresql ×3
join ×2
archiving ×1
error-log ×1
http-referer ×1
left-join ×1
optimization ×1
php ×1
phpunit ×1
referer ×1
replication ×1
settings ×1
sql ×1
streaming ×1
unit-testing ×1
where ×1