当前位置:网站首页>Database postragesql lock management
Database postragesql lock management
2022-07-05 01:04:00 【wx5d0241bb88268】
19.12. Lock management
deadlock_timeout (integer)
This is the total time spent waiting on a lock before deadlock detection ( In milliseconds ). Deadlock detection is relatively expensive , So the server doesn't run this every time it waits for a lock . We optimistically assume that deadlocks are uncommon in production applications , And only wait for a while before starting to detect deadlocks . Increasing this value reduces the time wasted on useless deadlock detection , But it slows down the reporting of real deadlock errors . The default is 1 second (1s), This may be the minimum you want in practice . On a high load server , You may need to increase it . The ideal setting for this value should be longer than your usual transaction time , This reduces the chance to start deadlock checking before the lock is released . Only super users can change this setting .
When log_lock_waits When set , This parameter can also determine the length of time to wait before issuing a log on lock wait . If you want to investigate lock delay , You may want to set a more normal deadlock_timeout Small value .
max_locks_per_transaction (integer)
Shared lock table tracking in max_locks_per_transaction * (max_connections + max_prepared_transactions) Objects ( As shown in the table ) The lock on the . therefore , At any moment , Only so many distinguishable objects can be locked . This parameter controls the average number of object locks allocated to each transaction . Individual transactions can lock more objects , The number of locks can be as many as all transactions in the lock table can hold . This is not the number of lines that can be locked , There is no limit to that value . The default value is 64 It has been proved by history that it is enough , But if
You need to use queries from many different tables in a transaction ( For example, query a parent table with many child tables ), You may need to increase this value . This parameter can only be set when the server is started .
When running a backup server , You must set this parameter to be greater than or equal to the value on the primary server . otherwise , Queries will not be allowed on the backup server .
max_pred_locks_per_transaction (integer)
Shared predicate lock table tracking in max_pred_locks_per_transaction * (max_connections +max_prepared_transactions) Objects ( As shown in the table ) The lock on the . therefore , At any moment , Only so many distinguishable objects can be locked . This parameter controls the average number of object locks allocated to each transaction . Individual transactions can lock more objects , The number of locks can be as many as all transactions in the lock table can hold . This is not the number of lines that can be locked , There is no limit to that value . The default value is 64 It has been shown in tests that it is usually sufficient , But if you need to use queries from many different tables in a serializable transaction ( For example, query a parent table with many child tables ), You may need to increase this value . This parameter can only be set when the server is started .
max_pred_locks_per_relation (integer)
This parameter controls before predicate locks are promoted to cover the entire relationship , How many pages or tuples can this predicate lock on a single relationship . A value greater than or equal to zero represents an absolute limit , Negative values indicate that max_pred_locks_per_transaction Divided by the absolute value of this setting . The default value is -2, It will keep the previous version of PostgreSQL Behavior in . This parameter can only be in postgresql.conf File or on the server command line .
max_pred_locks_per_page (integer)
This parameter controls until the predicate lock is promoted to cover the entire page , How many rows can this predicate lock lock on a single page . The default value is 2. This parameter can only be in postgresql.conf File or on the server command line .
边栏推荐
- 华为百万聘请数据治理专家!背后的千亿市场值得关注
- Safety learning week4
- Paxos 入门
- SAP UI5 应用的主-从-从(Master-Detail-Detail)布局模式的实现步骤
- FEG founder rox:smartdefi will be the benchmark of the entire decentralized financial market
- Global and Chinese market of optical densitometers 2022-2028: Research Report on technology, participants, trends, market size and share
- 各大主流编程语言性能PK,结果出乎意料
- 2022.07.03 (LC 6109 number of people who know secrets)
- Maximum number of "balloons"
- 整理混乱的头文件,我用include what you use
猜你喜欢

Basic operation of database and table ----- phased test II

FEG founder rox:smartdefi will be the benchmark of the entire decentralized financial market

Arbitrum:二维费用

Basic concept and usage of redis

Complete knapsack problem (template)

What you learned in the eleventh week

Apifox (postman + swagger + mock + JMeter), an artifact of full stack development and efficiency improvement

Applet live + e-commerce, if you want to be a new retail e-commerce, use it!

【海浪建模3】三维随机真实海浪建模以及海浪发电机建模matlab仿真

潘多拉 IOT 开发板学习(RT-Thread)—— 实验4 蜂鸣器+马达实验【按键外部中断】(学习笔记)
随机推荐
Query for Boolean field as "not true" (e.g. either false or non-existent)
Poap: the adoption entrance of NFT?
Mongodb series learning notes tutorial summary
SAP UI5 应用的主-从-从(Master-Detail-Detail)布局模式的实现步骤
College degree, what about 33 year old Baoma? I still sell and test, and my monthly income is 13K+
全网最全正则实战指南,拿走不谢
那些一门心思研究自动化测试的人,最后都怎样了?
Paxos 入门
[untitled]
“薪資倒掛”、“畢業生平替” 這些現象說明測試行業已經...
Daily question brushing record (13)
POAP:NFT的采用入口?
小程序直播 + 电商,想做新零售电商就用它吧!
整理混乱的头文件,我用include what you use
Parameter passing mechanism of member methods
Analysis and comparison of leetcode weekly race + acwing weekly race (t4/t3)
各大主流编程语言性能PK,结果出乎意料
Global and Chinese market of network connected IC card smart water meters 2022-2028: Research Report on technology, participants, trends, market size and share
Which financial products with stable income are good
FEG founder rox:smartdefi will be the benchmark of the entire decentralized financial market