91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PostgreSQL里面的命令有哪些

發布時間:2021-11-11 15:19:49 來源:億速云 閱讀:273 作者:小新 欄目:數據庫

小編給大家分享一下PostgreSQL里面的命令有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

PostgreSQL的功能還是很豐富的,有序列,支持db link,基本Oracle里有的概念它這里也有,目前來看不支持package。

風格和Oracle也類似,沒有MySQL中快捷方便的show create table 這樣的語句。

從我的使用習慣來說,我基本關注以下的一些方面。

  1. 查看數據庫的配置

    可以直接使用\l 選項列出所有的數據庫來,字符集,基本的配置都一目了然,有點Oracle 12c中的show pdbs的感覺。

    PostgreSQL里面的命令有哪些

    從進程情況來看,PG是多進程多線程的架構設計。

    PostgreSQL里面的命令有哪些

如果查看當前數據庫,可以使用current_database()。

postgres=# select current_database();

 current_database 

------------------

 postgres

2.查看用戶信息

可以使用\dn來得到schema的相關信息,在PG里面的schema和user還是有一些差別,在其他數據庫schema基本就是user了。

postgres-# \dn

  List of schemas

  Name  |  Owner   

--------+----------

 public | postgres

我們創建一個schema,然后使用\dn來查看。

postgres=# create schema jeanron100;

CREATE SCHEMA

postgres=# \dn

    List of schemas

    Name    |  Owner   

------------+----------

 jeanron100 | postgres

 public     | postgres

或者使用數據字典pg_authid來查看。

postgres=# select *from pg_authid;

關于schema的概念,我們可以創建一個表test,

postgres=# create table test(id int);

CREATE TABLE

可以看到這個是一個public的schema

postgres=# \d

        List of relations

 Schema | Name | Type  |  Owner   

--------+------+-------+----------

 public | test | table | postgres

如果使用\d來查看字段信息,結果如下:

postgres=# \d test

     Table "public.test"

 Column |  Type   | Modifiers 

--------+---------+-----------

 id     | integer | 

還可以使用pg_users來查看,比如我創建了一個用戶replica,就會有相應的配置。

select *from pg_user;

 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig 

----------+----------+-------------+----------+---------+--------------+----------+----------

 postgres |       10 | t           | t        | t       | t            | ******** |          | 

 replica  |    16384 | f           | f        | t       | f            | ******** |          | 

查看當前的schema信息,可以使用current_schema()

3.查看會話連接信息

如果查看PG中的會話信息,可以使用select * from pg_stat_activity;

如果新增了一個連接,開啟了一個會話,在服務端是會有一個影子進程存在的。可以根據pid找到對應的會話。包括執行的SQL都可以看到,如果有多個會話,就是多條記錄。

postgres=# select * from pg_stat_activity;

-[ RECORD 1 ]----+--------------------------------

datid            | 13241

datname          | postgres

pid              | 20644

usesysid         | 10

usename          | postgres

application_name | psql

client_addr      | 

client_hostname  | 

client_port      | -1

backend_start    | 2018-03-25 05:38:16.988057+08

xact_start       | 2018-03-25 05:48:08.113649+08

query_start      | 2018-03-25 05:48:08.113649+08

state_change     | 2018-03-25 05:48:08.113653+08

waiting          | f

state            | active

backend_xid      | 

backend_xmin     | 1753

query            | select * from pg_stat_activity;

4.show tables的類似方法

PG里面暫時沒有找到show tables這種的快捷方式,目前發現有兩類方式。

一種是通過數據字典pg_tables來查看,相當于Oracle里面的all_tables

或者是使用information_schema里面的tables來查看。

postgres=# select *from information_schema.tables;

postgres=# select *from pg_tables;

PG里面的information_schema比較特別,在數據庫中直接\l無法看到,但是確確實實存在,著數據字典風格和MySQL很相似。

5.用戶的權限查看

查看權限可以使用\dp來完成,或者等價的命令\z來實現。

postgres=# \dp

                            Access privileges

 Schema | Name | Type  | Access privileges | Column privileges | Policies 

--------+------+-------+-------------------+-------------------+----------

 public | test | table |                   |                   | 

6.建表語句

建表語句,目前還沒有發現show create table這種快捷的方式,不過可以通過pg_dump或者根據數據字典的信息來拼接了。

7.表空間信息

表空間的部分相對比較清晰,可以直接使用\db來完成。

postgres=# \db

       List of tablespaces

    Name    |  Owner   | Location 

------------+----------+----------

 pg_default | postgres | 

 pg_global  | postgres | 

或者使用pg_tablespace

postgres=# select *from pg_tablespace;  

  spcname   | spcowner | spcacl | spcoptions 

------------+----------+--------+------------

 pg_default |       10 |        | 

 pg_global  |       10 |        | 

8.對象存儲信息

這部分信息可以參考pg_tables,還有一些更細節的

PostgreSQL里面的命令有哪些

更多的細節還有待求證和發現。

9.查看鎖的信息

查看鎖的信息可以使用pg_locks來得到。

postgres=# select *from pg_locks;

-[ RECORD 1 ]------+----------------

locktype           | relation

database           | 13241

relation           | 11673

page               | 

tuple              | 

virtualxid         | 

transactionid      | 

classid            | 

objid              | 

objsubid           | 

virtualtransaction | 4/81

pid                | 20644

mode               | AccessShareLock

granted            | t

fastpath           | t

10.查看數據庫參數

這部分的功能不是很理解,因為沒有找到很便捷的方式。

比如查看緩存的設置

postgres=#  show shared_buffers;

-[ RECORD 1 ]--+------

shared_buffers | 128MB

或者根據參數文件postgresql.conf來查看。

11.顯示數據庫的運行狀態

這個信息毫無疑問,建議還是從pg_stats_activity來查看。

12.查看數據字典的信息

這應該是本小節的重點,通過查看視圖可以看到,有100多個視圖。

postgres=# select count(*)from pg_views;

-[ RECORD 1 ]

count | 112

還可以使用information_schema中的信息來補充。

13.查看索引的信息

查看索引的信息,可以使用\di來完成,非常快捷。

14.查看執行計劃

查看執行計劃一般可以根據explain來得到,但是還有幾類方法,對結果做格式化處理,比如轉化為json或者xml的格式等。

postgres=# explain select *from test;

-[ RECORD 1 ]------------------------------------------------------

QUERY PLAN | Seq Scan on test  (cost=0.00..35.50 rows=2550 width=4)

得到json格式的執行計劃。

postgres=# explain(format json) select *from test;

-[ RECORD 1 ]------------------------------

QUERY PLAN | [                             +

           |   {                           +

           |     "Plan": {                 +

           |       "Node Type": "Seq Scan",+

           |       "Relation Name": "test",+

           |       "Alias": "test",        +

           |       "Startup Cost": 0.00,   +

           |       "Total Cost": 35.50,    +

           |       "Plan Rows": 2550,      +

           |       "Plan Width": 4         +

           |     }                         +

           |   }                           +

           | ]

或者做一些分析,能夠得到更細節的執行信息。

postgres=# explain analyze select *from test;

                                            QUERY PLAN                                            

--------------------------------------------------------------------------------------------------

 Seq Scan on test  (cost=0.00..35.50 rows=2550 width=4) (actual time=0.001..0.001 rows=0 loops=1)

 Planning time: 0.018 ms

 Execution time: 0.009 ms

15.查看存儲過程

查看存儲過程就是比較單薄的。可以直接使用pg_proc來得到詳細的信息。

pg_proc

16.存儲過程的調度執行

目前沒有看到很直接的方式,這部分感覺還不夠強大。

17.事務隔離級別

根據公司現狀和業務規模的不斷擴大,其實技術上也是不斷地改進和積累,事務方面的處理也是如此,等規模達到了一定的量級,這部分的要求就會很明確。所以很多開發同學對于鎖機制都很感興趣。

查看事務隔離級別的兩種SQL語句。

postgres=#  show default_transaction_isolation;

 default_transaction_isolation 

-------------------------------

 read committed

查看當前的事務隔離級別設置。

postgres=# show transaction_isolation;

 transaction_isolation 

-----------------------

 read committed

以上是“PostgreSQL里面的命令有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

班戈县| 毕节市| 潞城市| 老河口市| 旺苍县| 广安市| 江油市| 威远县| 东兰县| 大连市| 娱乐| 珠海市| 寿宁县| 基隆市| 东安县| 辉南县| 平原县| 红桥区| 乐陵市| 会东县| 伊吾县| 大洼县| 罗平县| 丰台区| 凉城县| 磐石市| 文水县| 黄大仙区| 廊坊市| 珲春市| 潮州市| 德州市| 隆尧县| 平遥县| 清镇市| 大理市| 余干县| 康保县| 金山区| 通渭县| 萍乡市|