?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
持久性是數(shù)據(jù)庫的一個(gè)保證已提交事務(wù)的記錄的特性(即使是發(fā)生數(shù)據(jù)庫崩潰或突然斷電)。 然而會(huì)明顯增加數(shù)據(jù)庫的開銷,因此如果不需要這個(gè)保證,PostgreSQL 可以配置的運(yùn)行更快。根據(jù)下面的配置可以提高性能;這些設(shè)置不會(huì)廢止數(shù)據(jù)庫崩潰恢復(fù)有關(guān)的事務(wù) 保證,只影響系統(tǒng)存儲(chǔ),如下:
將數(shù)據(jù)庫集群的data目錄放到一個(gè)基于沒存的文件系統(tǒng)上(如RAM磁盤)。 這消除了所有的數(shù)據(jù)庫磁盤I/O,但限制的數(shù)據(jù)存儲(chǔ)的可用內(nèi)存量(也有可能是SWAP區(qū))。
關(guān)閉fsync;不需要將數(shù)據(jù)刷入磁盤。
關(guān)閉full_page_writes;不許要警惕部分頁面的寫入。
增加checkpoint_segments和checkpoint_timeout;會(huì)降低檢查點(diǎn)的頻率,但會(huì) 增加/pg_xlog的存儲(chǔ)要求。
關(guān)閉synchronous_commit;不需要在每次提交之后將WAL 寫入到磁盤。這會(huì)影響數(shù)據(jù)庫崩潰時(shí)事務(wù)的有效期。