启用慢速查询日志记录后,我们发现很多UPDATE
在我们的生产数据库上需要花费多秒才能完成。在调查时,这些通常是简单的事务:获取行COMMIT
行SELECT
。这些特定事务中的UPDATE
和$dimensions = array(
array('Name' => 'InstanceId', 'Value' => 'i-0c0f546e4d1ef25e1'),
);
$memoryResult = $cloudWatchClient->getMetricStatistics(array(
'Namespace' => 'System/Linux',
'MetricName' => 'MemoryUtilization',
'Dimensions' => $dimensions,
'StartTime' => strtotime('-5 minutes'),
'EndTime' => strtotime('now'),
'Period' => 60,
'Statistics' => array('Average'),
));
var_dump($memoryResult);
未被记录为慢速。有什么我们可以做的,或者我们可以使用的工具,找出这些缓慢提交的原因?我们正在运行SSD,并且正在流向一个奴隶,如果这会产生影响。
答案 0 :(得分:-1)
Postgres提交是同步的。这意味着他们将等待WAL写入完成,然后再转移到下一个。您可以调整配置文件中的WAL设置以进行调整。
您可以使用配置文件中的synchronous_commit将提交级别设置为会话/用户级别或数据库范围的异步。
在数据库方面。
对表格进行抽真空以更新统计信息。这将消除死元组,因为你的表演更新,会有很多。
VACUUM ANALYZE