最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

玩轉(zhuǎn)PostgreSQL之30個(gè)實(shí)用SQL語句

 更新時(shí)間:2022年11月15日 23:01:22   作者:慕楓  
本文主要整理總結(jié)了30個(gè)實(shí)用SQL,方便大家可以高效利用PostgreSQL,需要的朋友可以參考下

引言

PostgreSQL是一款功能非常強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫,它支持哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN等多種索引模式,同時(shí)可安裝功能豐富的擴(kuò)展包。相較于Mysql,PostgreSQ支持通過PostGIS擴(kuò)展支持地理空間數(shù)據(jù)、支持嵌套循環(huán),哈希連接,排序合并三種表連接方式等一系列的強(qiáng)化功能。本文主要整理總結(jié)了30個(gè)實(shí)用SQL,方便大家可以高效利用PostgreSQL。

實(shí)用SQL語句

一、數(shù)據(jù)庫連接

1、獲取數(shù)據(jù)庫實(shí)例連接數(shù)

select count(*) from pg_stat_activity;

2、獲取數(shù)據(jù)庫最大連接數(shù)

show max_connections

3、查詢當(dāng)前連接數(shù)詳細(xì)信息

select * from pg_stat_activity;

4、查詢數(shù)據(jù)庫中各個(gè)用戶名對(duì)應(yīng)的數(shù)據(jù)庫連接數(shù)

select usename, count(*) from pg_stat_activity group by usename;?

二、賦權(quán)操作

1、為指定用戶賦予指定表的select權(quán)限

GRANT SELECT ON table_name TO username;

2、修改數(shù)據(jù)庫表所屬的ownner

alter table table_name owner to username;

3、授予指定用戶指定表的所有權(quán)限

grant all privileges on table product to username

4、授予指定用戶所有表的所有權(quán)限

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO username;

三、數(shù)據(jù)庫表或者索引

1、獲取數(shù)據(jù)庫表中的索引

select * from pg_indexes where tablename = 'product';?

2、獲取當(dāng)前db中所有表信息

?select * from pg_tables;

3、查詢數(shù)據(jù)庫安裝了哪些擴(kuò)展

select * from pg_extension;?

4、查詢數(shù)據(jù)庫中的所有表及其描述

select relname as TABLE_NAME ,col_description(c.oid, 0) as COMMENTS from pg_class c where relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%'

四、獲取數(shù)據(jù)大小

1、查詢執(zhí)行數(shù)據(jù)庫大小

select pg_size_pretty (pg_database_size('db_product'));

2、查詢數(shù)據(jù)庫實(shí)例當(dāng)中各個(gè)數(shù)據(jù)庫大小

select datname, pg_size_pretty (pg_database_size(datname)) AS size from pg_database;

3、查詢單表數(shù)據(jù)大小

select pg_size_pretty(pg_relation_size('table_name')) as size;

4、查詢數(shù)據(jù)庫表包括索引的

select pg_size_pretty(pg_total_relation_size('table_name')) as size;

5、查看表中索引大小

select pg_size_pretty(pg_indexes_size('table_name'));

6、獲取各個(gè)表中的數(shù)據(jù)記錄數(shù)

select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' order by rowCounts desc

7、查看數(shù)據(jù)庫表對(duì)應(yīng)的數(shù)據(jù)文件

select pg_relation_filepath('product');

五、數(shù)據(jù)庫分析

1、查看數(shù)據(jù)庫實(shí)例的版本

select version();

2、查看最新加載配置的時(shí)間

select pg_conf_load_time();

3、查看當(dāng)前wal的buffer中有多少字節(jié)沒有寫入到磁盤中

select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location());

4、查詢最耗時(shí)的5個(gè)sql

select * from pg_stat_statements order by total_time desc limit 5;

備注:需要開啟pg_stat_statements

5、獲取執(zhí)行時(shí)間最慢的3條SQL,并給出CPU占用比例

SELECT substring(query, 1, 1000) AS short_query,
round(total_time::numeric, 2) AS total_time,
calls,
round((100 * total_time / sum(total_time::numeric) OVER ())::numeric, 2) AS percentage_cpu
FROM pg_stat_statements
ORDER BY total_time DESC
LIMIT 3;

6、分析評(píng)估SQL執(zhí)行情況

EXPLAIN ANALYZE SELECT * FROM product

7、查看當(dāng)前長時(shí)間執(zhí)行卻不結(jié)束的SQL

select datname, usename, client_addr, application_name, state, backend_start, xact_start, xact_stay, query_start, query_stay, replace(query, chr(10), ' ') as query from (select pgsa.datname as datname, pgsa.usename as usename, pgsa.client_addr client_addr, pgsa.application_name as application_name, pgsa.state as state, pgsa.backend_start as backend_start, pgsa.xact_start as xact_start, extract(epoch from (now() - pgsa.xact_start)) as xact_stay, pgsa.query_start as query_start, extract(epoch from (now() - pgsa.query_start)) as query_stay , pgsa.query as query from pg_stat_activity as pgsa where pgsa.state != 'idle' and pgsa.state != 'idle in transaction' and pgsa.state != 'idle in transaction (aborted)') idleconnections order by query_stay desc limit 5;

8、查出使用表掃描最多的表

select * from pg_stat_user_tables where n_live_tup > 100000 and seq_scan > 0 order by seq_tup_read desc limit 10;

9、查詢讀取buffer最多的5個(gè)SQL

select * from pg_stat_statements order by shared_blks_hit+shared_blks_read desc limit 5;

10、獲取數(shù)據(jù)庫當(dāng)前的回滾事務(wù)數(shù)以及死鎖數(shù)

select datname,xact_rollback,deadlocks from pg_stat_database

11、查詢指定表的慢查詢

select * from pg_stat_activity where query ilike '%<table_name>%' and query_start - now() > interval '10 seconds';

六、數(shù)據(jù)庫備份

1、備份postgres庫并tar打包

pg_dump -h 127.0.0.1 -p 5432 -U postgres -f postgres.sql.tar -Ft

2、備份postgres庫,轉(zhuǎn)儲(chǔ)數(shù)據(jù)為帶列名的INSERT命令

pg_dumpall -d postgres -U postgres -f postgres.sql --column-inserts

總結(jié)

本文主要針對(duì)PostgreSQL數(shù)據(jù)庫中在日常開發(fā)中比較常用的SQL進(jìn)行了分類的總結(jié),那么大家日常開發(fā)工作中,可以在分析數(shù)據(jù)庫性能、數(shù)據(jù)庫連接情況、sql執(zhí)行情況等方面都有對(duì)應(yīng)的SQL語句來進(jìn)行支撐。

相關(guān)文章

  • PostgreSQL?流復(fù)制配置環(huán)境搭建過程

    PostgreSQL?流復(fù)制配置環(huán)境搭建過程

    PostgreSQL 流復(fù)制是 9.0 提供的一種新的 WAL 傳遞方法,使用流復(fù)制時(shí),每當(dāng) Primary 節(jié)點(diǎn) WAL 產(chǎn)生,就會(huì)馬上傳遞到 Standby 節(jié)點(diǎn),流復(fù)制提供異步和同步兩種模式,同步模式可以保障數(shù)據(jù) 0 丟失,這篇文章主要介紹了PostgreSQL?流復(fù)制搭建,需要的朋友可以參考下
    2023-09-09
  • PostgreSQL中enable、disable和validate外鍵約束的實(shí)例

    PostgreSQL中enable、disable和validate外鍵約束的實(shí)例

    這篇文章主要介紹了PostgreSQL中enable、disable和validate外鍵約束的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    這篇文章主要介紹了Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • postgreSQL數(shù)據(jù)庫默認(rèn)用戶postgres常用命令分享

    postgreSQL數(shù)據(jù)庫默認(rèn)用戶postgres常用命令分享

    這篇文章主要介紹了postgreSQL數(shù)據(jù)庫默認(rèn)用戶postgres常用命令分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL死鎖了怎么辦及處理方法

    PostgreSQL死鎖了怎么辦及處理方法

    這篇文章主要介紹了PostgreSQL死鎖了怎么辦?本文給大家講解了死鎖原因及解決方法,介紹l避免死鎖的實(shí)戰(zhàn)建議,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題

    解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題

    這篇文章主要介紹了解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Windows PostgreSQL 安裝圖文教程

    Windows PostgreSQL 安裝圖文教程

    PostgreSQL是一套功能強(qiáng)大的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。經(jīng)過十幾年的發(fā)展, PostgreSQL 是世界上可以獲得的最先進(jìn)的開放源碼的數(shù)據(jù)庫系統(tǒng)
    2009-08-08
  • postgresql數(shù)據(jù)庫如何查看數(shù)據(jù)中表的信息

    postgresql數(shù)據(jù)庫如何查看數(shù)據(jù)中表的信息

    這篇文章主要給大家介紹了關(guān)于postgresql數(shù)據(jù)庫如何查看數(shù)據(jù)中表信息的相關(guān)資料,要查詢數(shù)據(jù)表信息,需要用到 系統(tǒng)表或系統(tǒng)視圖等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • PostgreSQL LIKE 大小寫實(shí)例

    PostgreSQL LIKE 大小寫實(shí)例

    這篇文章主要介紹了PostgreSQL LIKE 大小寫實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。 一起跟隨小編過來看看吧
    2021-01-01
  • CentOS 7下安裝PostgreSQL 9.6的教程分享

    CentOS 7下安裝PostgreSQL 9.6的教程分享

    PostgreSQL在我心目中的地位要遠(yuǎn)遠(yuǎn)高于MySQL,雖然流行對(duì)比MySQL低很對(duì),但是功能性一致走在MySQL的前面。下面這篇文章主要介紹了CentOS 7下安裝PostgreSQL數(shù)據(jù)庫的方法,需要的朋友可以參考借鑒,一起來看看吧。
    2017-02-02

最新評(píng)論

赣州市| 密云县| 威海市| 泸州市| 邵东县| 扎鲁特旗| 三门县| 清河县| 扶风县| 武陟县| 五大连池市| 金沙县| 德州市| 花莲县| 尉犁县| 项城市| 渭源县| 常州市| 修文县| 大埔区| 金溪县| 凤庆县| 黄大仙区| 华宁县| 横峰县| 仁寿县| 阿拉善右旗| 左贡县| 普兰县| 汝州市| 宽城| 东丽区| 阳曲县| 九江市| 丰都县| 常熟市| 巨鹿县| 二手房| 河间市| 固安县| 洛隆县|