中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

有效果的網(wǎng)站排名網(wǎng)絡(luò)營銷學(xué)校

有效果的網(wǎng)站排名,網(wǎng)絡(luò)營銷學(xué)校,網(wǎng)站后臺(tái)改網(wǎng)頁底色,優(yōu)秀政府網(wǎng)站數(shù)據(jù)庫表參數(shù) default_reloptions 函數(shù)案例 聲明:本文的部分內(nèi)容參考了他人的文章。在編寫過程中,我們尊重他人的知識(shí)產(chǎn)權(quán)和學(xué)術(shù)成果,力求遵循合理使用原則,并在適用的情況下注明引用來源。 本文主要參考了《PostgresSQL數(shù)據(jù)庫內(nèi)核…

數(shù)據(jù)庫表參數(shù)

  • default_reloptions 函數(shù)
  • 案例

聲明:本文的部分內(nèi)容參考了他人的文章。在編寫過程中,我們尊重他人的知識(shí)產(chǎn)權(quán)和學(xué)術(shù)成果,力求遵循合理使用原則,并在適用的情況下注明引用來源。
本文主要參考了《PostgresSQL數(shù)據(jù)庫內(nèi)核分析》一書,OpenGauss1.1.0 的開源代碼和《OpenGauss數(shù)據(jù)庫源碼解析》一書以及OpenGauss社區(qū)學(xué)習(xí)文檔

default_reloptions 函數(shù)

??default_reloptions 函數(shù)是一個(gè)選項(xiàng)解析器,用于處理與數(shù)據(jù)庫關(guān)系(表或視圖)相關(guān)的選項(xiàng)。它接受一個(gè)包含關(guān)系選項(xiàng)的參數(shù),然后解析驗(yàn)證這些選項(xiàng),將它們存儲(chǔ)在一個(gè)特定的數(shù)據(jù)結(jié)構(gòu)中(StdRdOptions)。這個(gè)函數(shù)的主要目的是允許用戶或數(shù)據(jù)庫管理員通過選項(xiàng)來自定義配置關(guān)系的各種屬性和行為,例如填充因子、自動(dòng)化清理策略、安全性設(shè)置。它是數(shù)據(jù)庫系統(tǒng)中對關(guān)系配置的重要組成部分,以實(shí)現(xiàn)更好的性能行為控制
??default_reloptions 函數(shù)的作用是接收傳入的關(guān)系選項(xiàng)(以二進(jìn)制形式表示),然后將這些選項(xiàng)解析驗(yàn)證,最后將它們存儲(chǔ)在一個(gè)特定的數(shù)據(jù)結(jié)構(gòu)StdRdOptions)中,以便在數(shù)據(jù)庫系統(tǒng)中配置管理關(guān)系的各種屬性行為,如填充因子、自動(dòng)化清理策略、安全性設(shè)置等。這個(gè)函數(shù)允許數(shù)據(jù)庫管理員或應(yīng)用程序開發(fā)人員根據(jù)需要自定義配置關(guān)系的行為和性能特性。
??default_reloptions 函數(shù)源碼如下所示:(路徑:src/gausskernel/storage/access/common/reloptions.cpp

/* * 為使用StdRdOptions的任何內(nèi)容(例如fillfactor和autovacuum)提供選項(xiàng)解析器* reloptions:傳入的關(guān)系選項(xiàng),以二進(jìn)制形式表示* validate:指示是否進(jìn)行驗(yàn)證的標(biāo)志* kind:關(guān)系選項(xiàng)的類型,通常是RELOPT_KIND_HEAP或RELOPT_KIND_TOAST*/
bytea *default_reloptions(Datum reloptions, bool validate, relopt_kind kind)
{relopt_value *options = NULL;  // 存儲(chǔ)解析后的選項(xiàng)值的數(shù)組StdRdOptions *rdopts = NULL;    // 存儲(chǔ)最終結(jié)果的數(shù)據(jù)結(jié)構(gòu)int numoptions;                 // 選項(xiàng)數(shù)量static const relopt_parse_elt tab[] = {// 定義選項(xiàng)名稱、類型和存儲(chǔ)位置的映射數(shù)組// 每個(gè)元素包括選項(xiàng)名稱、數(shù)據(jù)類型和在StdRdOptions結(jié)構(gòu)中的偏移量// 用于將選項(xiàng)值解析到對應(yīng)的字段中// 更多選項(xiàng)可以在這里添加{ "fillfactor", RELOPT_TYPE_INT, offsetof(StdRdOptions, fillfactor) },{ "autovacuum_enabled", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, enabled) },{ "autovacuum_vacuum_threshold", RELOPT_TYPE_INT,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_threshold) },{ "autovacuum_analyze_threshold", RELOPT_TYPE_INT,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, analyze_threshold) },{ "autovacuum_vacuum_cost_delay", RELOPT_TYPE_INT,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_cost_delay) },{ "autovacuum_vacuum_cost_limit", RELOPT_TYPE_INT,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_cost_limit) },{ "autovacuum_freeze_min_age", RELOPT_TYPE_INT64,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_min_age) },{ "autovacuum_freeze_max_age", RELOPT_TYPE_INT64,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_max_age) },{ "autovacuum_freeze_table_age", RELOPT_TYPE_INT64,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, freeze_table_age) },{ "autovacuum_vacuum_scale_factor", RELOPT_TYPE_REAL,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_scale_factor) },{ "autovacuum_analyze_scale_factor", RELOPT_TYPE_REAL,offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, analyze_scale_factor) },{ "security_barrier", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, security_barrier) },{ "enable_rowsecurity", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, enable_rowsecurity) },{ "force_rowsecurity", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, force_rowsecurity) },{ "enable_tsdb_delta", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, enable_tsdb_delta) },{ "tsdb_deltamerge_interval", RELOPT_TYPE_INT, offsetof(StdRdOptions, tsdb_deltamerge_interval) },{ "tsdb_deltamerge_threshold", RELOPT_TYPE_INT, offsetof(StdRdOptions, tsdb_deltamerge_threshold) },{ "tsdb_deltainsert_threshold", RELOPT_TYPE_INT, offsetof(StdRdOptions, tsdb_deltainsert_threshold) },{ "max_batchrow", RELOPT_TYPE_INT, offsetof(StdRdOptions, max_batch_rows) },{ "deltarow_threshold", RELOPT_TYPE_INT, offsetof(StdRdOptions, delta_rows_threshold) },{ "partial_cluster_rows", RELOPT_TYPE_INT, offsetof(StdRdOptions, partial_cluster_rows) },{ "internal_mask", RELOPT_TYPE_INT, offsetof(StdRdOptions, internalMask) },{ "orientation", RELOPT_TYPE_STRING, offsetof(StdRdOptions, orientation) },{ "compression", RELOPT_TYPE_STRING, offsetof(StdRdOptions, compression) },{"table_access_method", RELOPT_TYPE_STRING, offsetof(StdRdOptions, table_access_method)},{ "ttl", RELOPT_TYPE_STRING, offsetof(StdRdOptions, ttl) },{ "period", RELOPT_TYPE_STRING, offsetof(StdRdOptions, period) },{ "string_optimize", RELOPT_TYPE_STRING, offsetof(StdRdOptions, string_optimize) },{ "partition_interval", RELOPT_TYPE_STRING, offsetof(StdRdOptions, partition_interval) },{ "time_column", RELOPT_TYPE_STRING, offsetof(StdRdOptions, time_column) },{ "ttl_interval", RELOPT_TYPE_STRING, offsetof(StdRdOptions, ttl_interval) },{ "gather_interval", RELOPT_TYPE_STRING, offsetof(StdRdOptions, gather_interval) },{ "version", RELOPT_TYPE_STRING, offsetof(StdRdOptions, version) },{ "compresslevel", RELOPT_TYPE_INT, offsetof(StdRdOptions, compresslevel) },{ "ignore_enable_hadoop_env", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, ignore_enable_hadoop_env) },{ "append_mode", RELOPT_TYPE_STRING, offsetof(StdRdOptions, append_mode) },{ "merge_list", RELOPT_TYPE_STRING, offsetof(StdRdOptions, merge_list) },{ "rel_cn_oid", RELOPT_TYPE_INT, offsetof(StdRdOptions, rel_cn_oid) },{ "append_mode_internal", RELOPT_TYPE_INT, offsetof(StdRdOptions, append_mode_internal) },{ "start_ctid_internal", RELOPT_TYPE_STRING, offsetof(StdRdOptions, start_ctid_internal) },{ "end_ctid_internal", RELOPT_TYPE_STRING, offsetof(StdRdOptions, end_ctid_internal) },{ "user_catalog_table", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, user_catalog_table) },{ "hashbucket", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, hashbucket) },{ "primarynode", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, primarynode) },{ "on_commit_delete_rows", RELOPT_TYPE_BOOL, offsetof(StdRdOptions, on_commit_delete_rows)},{ "wait_clean_gpi", RELOPT_TYPE_STRING, offsetof(StdRdOptions, wait_clean_gpi)}};// 解析傳入的關(guān)系選項(xiàng),將其存儲(chǔ)在options數(shù)組中,并返回選項(xiàng)數(shù)量options = parseRelOptions(reloptions, validate, kind, &numoptions);/* if none set, we're done */// 如果沒有設(shè)置任何選項(xiàng),則返回NULLif (numoptions == 0)return NULL;// 為rdopts分配內(nèi)存,根據(jù)StdRdOptions結(jié)構(gòu)的大小以及選項(xiàng)數(shù)量rdopts = (StdRdOptions *)allocateReloptStruct(sizeof(StdRdOptions), options, numoptions);// 使用解析后的選項(xiàng)填充rdopts結(jié)構(gòu),將選項(xiàng)值分配到對應(yīng)的字段中fillRelOptions((void *)rdopts, sizeof(StdRdOptions), options, numoptions, validate, tab, lengthof(tab));// 釋放options數(shù)組中的字符串值的內(nèi)存for (int i = 0; i < numoptions; i++) {if (options[i].gen->type == RELOPT_TYPE_STRING && options[i].isset)pfree(options[i].values.string_val);}pfree(options);// 返回結(jié)果,以bytea類型的數(shù)據(jù)返回StdRdOptions結(jié)構(gòu)return (bytea *)rdopts;
}

??其中,表(或關(guān)系)的選項(xiàng)的配置如下表所示:

參 數(shù)含 義
fillfactor設(shè)置表的填充因子,用于指定在表的數(shù)據(jù)頁中保留多少空間,以便將來插入新行。
autovacuum_enabled一個(gè)布爾值,指定是否啟用了自動(dòng)化清理和分析。
autovacuum_vacuum_threshold自動(dòng)清理操作的觸發(fā)閾值,當(dāng)表中的行數(shù)超過此閾值時(shí),將執(zhí)行自動(dòng)清理操作。
autovacuum_analyze_threshold自動(dòng)分析操作的觸發(fā)閾值,當(dāng)表中的行數(shù)超過此閾值時(shí),將執(zhí)行自動(dòng)分析操作。
autovacuum_vacuum_cost_delay自動(dòng)清理操作的成本延遲,以控制其執(zhí)行速度。
autovacuum_vacuum_cost_limit自動(dòng)清理操作的成本限制,以控制資源消耗。
autovacuum_freeze_min_age觸發(fā)自動(dòng)凍結(jié)的最小年齡,用于維護(hù)事務(wù)ID凍結(jié)的表。
autovacuum_freeze_max_age觸發(fā)自動(dòng)凍結(jié)的最大年齡,用于維護(hù)事務(wù)ID凍結(jié)的表。
autovacuum_freeze_table_age自動(dòng)凍結(jié)表的年齡,用于維護(hù)事務(wù)ID凍結(jié)的表。
autovacuum_vacuum_scale_factor自動(dòng)清理的比例因子。
autovacuum_analyze_scale_factor自動(dòng)分析的比例因子。
security_barrier一個(gè)布爾值,指定是否啟用了安全屏障。
enable_rowsecurity一個(gè)布爾值,指定是否啟用了行級安全性。
force_rowsecurity一個(gè)布爾值,指定是否強(qiáng)制啟用了行級安全性。
enable_tsdb_delta一個(gè)布爾值,指定是否啟用了時(shí)序數(shù)據(jù)庫(TSDB)的增量數(shù)據(jù)存儲(chǔ)。
tsdb_deltamerge_intervalTSDB增量數(shù)據(jù)合并的時(shí)間間隔。
tsdb_deltamerge_thresholdTSDB增量數(shù)據(jù)合并的閾值。
tsdb_deltainsert_thresholdTSDB增量數(shù)據(jù)插入的閾值。
max_batchrow最大批量行數(shù)。
deltarow_threshold增量行的閾值。
partial_cluster_rows部分聚集行的數(shù)量。
internal_mask內(nèi)部掩碼。
orientation表的方向。
compression數(shù)據(jù)的壓縮方式。
table_access_method表的訪問方法。
ttl表的生存時(shí)間。
period表的周期。
string_optimize字符串優(yōu)化。
partition_interval分區(qū)間隔。
time_column時(shí)間列。
ttl_interval生存時(shí)間間隔。
gather_interval聚集間隔。
version版本。
compresslevel壓縮級別。
ignore_enable_hadoop_env是否忽略啟用Hadoop環(huán)境。
append_mode附加模式。
merge_list合并列表。
rel_cn_oid關(guān)系CN OID
append_mode_internal內(nèi)部附加模式。
start_ctid_internal內(nèi)部起始CTID
end_ctid_internal內(nèi)部結(jié)束CTID。
user_catalog_table是否為用戶目錄表。
hashbucket是否為哈希桶。
primarynode是否為主節(jié)點(diǎn)。
on_commit_delete_rows提交時(shí)刪除行。
wait_clean_gpi等待清理GPI。

??這些選項(xiàng)配置了表的各種屬性和行為,以滿足特定的數(shù)據(jù)庫需求。

案例

??接下來,我們通過幾個(gè)案例來觀察其中的幾個(gè)代表參數(shù)的實(shí)際作用,來了解一下這些參數(shù)的意義。具體案例如下:

1. 創(chuàng)建存儲(chǔ)表,執(zhí)行以下 SQL 語句

CREATE TABLE test_table (id serial PRIMARY KEY,name text
) WITH (fillfactor = 70,  -- 設(shè)置填充因子autovacuum_enabled = true,  -- 啟用自動(dòng)清理和分析autovacuum_vacuum_threshold = 1000,  -- 自動(dòng)清理觸發(fā)閾值autovacuum_analyze_threshold = 500,  -- 自動(dòng)分析觸發(fā)閾值autovacuum_vacuum_cost_delay = 10,  -- 自動(dòng)清理成本延遲autovacuum_vacuum_cost_limit = 1000,  -- 自動(dòng)清理成本限制compression = 'lz4'  -- 數(shù)據(jù)壓縮方式
);postgres=# \d+ test_tableTable "public.test_table"Column |  Type   |                        Modifiers                        | Storage  | Stats target | Description
--------+---------+---------------------------------------------------------+----------+--------------+-------------id     | integer | not null default nextval('test_table_id_seq'::regclass) | plain    |              |name   | text    |                                                         | extended |              |
Has OIDs: no
Options: orientation=column, autovacuum_enabled=true, autovacuum_analyze_threshold=500, compression=low

2. 插入一些示例數(shù)據(jù)到列存儲(chǔ)表中

DO $$ 
DECLAREcounter INT := 1;
BEGINFOR counter IN 1..1500 LOOPINSERT INTO test_table (name) VALUES ('Item ' || counter);END LOOP;
END $$;postgres=# select * from test_table;id  |   name
------+-----------1 | Item 12 | Item 23 | Item 34 | Item 45 | Item 56 | Item 67 | Item 78 | Item 89 | Item 910 | Item 1011 | Item 1112 | Item 1213 | Item 1314 | Item 1415 | Item 1516 | Item 1617 | Item 1718 | Item 1819 | Item 1920 | Item 2021 | Item 2122 | Item 2223 | Item 2324 | Item 2425 | Item 2526 | Item 2627 | Item 2728 | Item 2829 | Item 2930 | Item 3031 | Item 3132 | Item 3233 | Item 3334 | Item 3435 | Item 3536 | Item 3637 | Item 3738 | Item 3839 | Item 39
--More--

3. 執(zhí)行自動(dòng)分析并查看統(tǒng)計(jì)信息

SELECT schemaname,relname,last_vacuum,last_autovacuum,last_analyze,last_autoanalyze,vacuum_count,autovacuum_count,analyze_count,autoanalyze_count
FROM pg_stat_all_tables
WHERE relname = 'test_table';schemaname |  relname   | last_vacuum | last_autovacuum |         last_analyze          |       last_autoanalyze        | vacuum_count | autovacuum_count | anal
yze_count | autoanalyze_count
------------+------------+-------------+-----------------+-------------------------------+-------------------------------+--------------+------------------+-----
----------+-------------------public     | test_table |             |                 | 2023-10-07 11:32:20.377228+08 | 2023-10-07 11:32:20.377228+08 |            0 |                0 |1 |                 1
(1 row)

??可以看到,當(dāng)表中的數(shù)據(jù)量達(dá)到自動(dòng)分觸發(fā)閾值時(shí) autovacuum_analyze_threshold ,則會(huì)執(zhí)行自動(dòng)分析 autoanalyze。

4. 執(zhí)行自動(dòng)清理

??在PostgreSQL數(shù)據(jù)庫中,自動(dòng)觸發(fā)autovacuum_vacuum_threshold選項(xiàng)所定義的自動(dòng)清理autovacuum)操作通常由數(shù)據(jù)庫自身的內(nèi)部機(jī)制控制autovacuum_vacuum_threshold是一個(gè)配置選項(xiàng),它定義了當(dāng)表中的行數(shù)達(dá)到指定閾值時(shí),自動(dòng)觸發(fā)VACUUM操作的條件。

要觸發(fā)自動(dòng)清理,需要滿足以下條件:

  1. 表的行數(shù)超過了autovacuum_vacuum_threshold所定義的閾值
  2. 自動(dòng)清理(autovacuum)進(jìn)程處于活動(dòng)狀態(tài),通常是后臺(tái)運(yùn)行的自動(dòng)清理進(jìn)程。

??自動(dòng)清理進(jìn)程會(huì)定期檢查表的狀態(tài)并根據(jù)一系列配置選項(xiàng)來決定是否執(zhí)行VACUUM操作。autovacuum_vacuum_threshold只是其中之一。其他配置選項(xiàng)還包括autovacuum_analyze_thresholdautovacuum_freeze_max_age等,它們影響了自動(dòng)清理的行為。
??需要注意的是autovacuum進(jìn)程通常會(huì)數(shù)據(jù)庫空閑時(shí)執(zhí)行自動(dòng)清理操作,以避免干擾正在進(jìn)行的活動(dòng)查詢和事務(wù)。此外,autovacuum的行為也可以通過其他配置選項(xiàng)進(jìn)行微調(diào),以滿足特定應(yīng)用場景的需求。
??總之,要觸發(fā)autovacuum_vacuum_threshold自動(dòng)清理,需要確保表的行數(shù)達(dá)到了指定閾值,并確保autovacuum進(jìn)程處于活動(dòng)狀態(tài),它會(huì)自動(dòng)監(jiān)測并執(zhí)行相應(yīng)的清理操作。

SELECT schemaname,relname,last_vacuum,last_autovacuum,last_analyze,last_autoanalyze,vacuum_count,autovacuum_count,analyze_count,autoanalyze_count
FROM pg_stat_all_tables
WHERE relname = 'test_table';schemaname |  relname   |          last_vacuum          | last_autovacuum |         last_analyze          |       last_autoanalyze        | vacuum_count | autov
acuum_count | analyze_count | autoanalyze_count
------------+------------+-------------------------------+-----------------+-------------------------------+-------------------------------+--------------+------
------------+---------------+-------------------public     | test_table | 2023-10-07 15:35:41.430136+08 |2023-10-07 15:35:41.430136+08| 2023-10-07 15:32:22.660942+08 | 2023-10-07 15:32:22.660942+08 |            1 |0 |             2 |                 2
(1 row)

??這里不一一列舉表(或關(guān)系)的選項(xiàng)的配置的案例,如需要詳細(xì)了解可以查詢相關(guān)手冊。

http://www.risenshineclean.com/news/50345.html

相關(guān)文章:

  • 自己網(wǎng)站的登錄api怎么做上海今日頭條新聞
  • 廊坊電商網(wǎng)站建設(shè)推廣關(guān)鍵詞排名
  • 網(wǎng)站建設(shè)對企業(yè)的意義淘寶推廣哪種方式最好
  • wordpress會(huì)員查看發(fā)布插件上海網(wǎng)站快速排名優(yōu)化
  • 大學(xué)科研項(xiàng)目做網(wǎng)站常州seo收費(fèi)
  • 在網(wǎng)站里文本鏈接怎么做關(guān)鍵詞com
  • 網(wǎng)站開發(fā)階段怎么做測試網(wǎng)絡(luò)培訓(xùn)
  • 做的好的淘寶客網(wǎng)站營銷策劃思路
  • 北京商城網(wǎng)站建設(shè)國內(nèi)設(shè)計(jì)公司前十名
  • 網(wǎng)站建設(shè)技術(shù)服務(wù)合同營銷網(wǎng)站建設(shè)專家
  • 相親網(wǎng)站做期貨現(xiàn)貨貴金屬的人開車搜索關(guān)鍵詞
  • 寧波網(wǎng)站建設(shè)多少錢一個(gè)搜索排名廣告營銷
  • 哪里有做營銷型網(wǎng)站的公司seo推廣計(jì)劃
  • 無錫做網(wǎng)站建設(shè)手機(jī)軟文廣告300字
  • 建網(wǎng)站的哪家好農(nóng)產(chǎn)品網(wǎng)絡(luò)營銷策劃書
  • 高清世界街景地圖如何退訂夫唯seo教程
  • 網(wǎng)站建設(shè)完成后如何備案杭州網(wǎng)站推廣與優(yōu)化
  • 如何做電商網(wǎng)站 昆明東莞互聯(lián)網(wǎng)推廣
  • 哪個(gè)網(wǎng)站是做旅游B2B的關(guān)鍵詞優(yōu)化排名軟件怎么樣
  • 網(wǎng)頁版微信官網(wǎng)seo優(yōu)化排名教程百度技術(shù)
  • 設(shè)計(jì)圖的網(wǎng)站seo哪家強(qiáng)
  • 南寧學(xué)網(wǎng)站建設(shè)自助發(fā)外鏈網(wǎng)站
  • 網(wǎng)站關(guān)鍵字優(yōu)化軟件免費(fèi)關(guān)鍵詞排名優(yōu)化軟件
  • 做網(wǎng)站前段用什么軟件百度seo排名培訓(xùn) 優(yōu)化
  • 做網(wǎng)站建設(shè)一年能賺多少中國搜索網(wǎng)站排名
  • 青浦手機(jī)網(wǎng)站制作seo實(shí)戰(zhàn)密碼第三版
  • 河北省住房城鄉(xiāng)建設(shè)廳網(wǎng)站防城港網(wǎng)站seo
  • 影響網(wǎng)站速度嗎網(wǎng)站優(yōu)化哪家好
  • 網(wǎng)頁制作成品網(wǎng)站寧波百度推廣優(yōu)化
  • 鄭州做網(wǎng)站好的公企業(yè)官方網(wǎng)站推廣