PostgreSQL Mô-đun Mở Rộng Chính Thức
PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng mã nguồn mở mạnh mẽ, với nhiều mô-đun mở rộng để tăng cường chức năng. ServBay bao gồm tất cả các mô-đun mở rộng chính thức của PostgreSQL, giúp người dùng dễ dàng sử dụng để đáp ứng các nhu cầu phức tạp. Dưới đây là một số mô-đun mở rộng PostgreSQL phổ biến và giới thiệu ngắn gọn về chúng.
Mô-đun Mở Rộng Phổ Biến
1. pg_stat_statements
Chức năng: Thu thập và ghi lại thông tin thống kê về việc thực thi các câu lệnh SQL.
Công dụng: Giúp quản trị viên cơ sở dữ liệu phân tích và tối ưu hóa hiệu suất truy vấn.
Lệnh cài đặt:
CREATE EXTENSION pg_stat_statements;
2. pg_trgm
Chức năng: Cung cấp tính năng tìm kiếm tương tự chuỗi dựa trên tổ hợp ba ký tự (trigram).
Công dụng: Dùng cho khớp mờ, tìm kiếm toàn văn, v.v.
Lệnh cài đặt:
CREATE EXTENSION pg_trgm;
3. hstore
Chức năng: Cung cấp tính năng lưu trữ cặp khóa-giá trị.
Công dụng: Phù hợp với các trường hợp cần lưu trữ thuộc tính động, như dữ liệu cấu hình, siêu dữ liệu, v.v.
Lệnh cài đặt:
CREATE EXTENSION hstore;
4. citext
Chức năng: Cung cấp kiểu văn bản không phân biệt chữ hoa chữ thường.
Công dụng: Dùng cho các trường hợp so sánh không phân biệt chữ hoa chữ thường, như tên người dùng, địa chỉ email, v.v.
Lệnh cài đặt:
CREATE EXTENSION citext;
5. uuid-ossp
Chức năng: Tạo UUID (Định danh duy nhất toàn cầu).
Công dụng: Dùng cho các trường hợp cần định danh duy nhất, như khóa chính, ID phiên, v.v.
Lệnh cài đặt:
CREATE EXTENSION "uuid-ossp";
6. intarray
Chức năng: Cung cấp các chức năng mở rộng cho mảng số nguyên.
Công dụng: Phù hợp với các trường hợp cần thao tác phức tạp trên mảng số nguyên.
Lệnh cài đặt:
CREATE EXTENSION intarray;
7. btree_gin
Chức năng: Cung cấp hỗ trợ thao tác B-tree dựa trên chỉ mục GIN.
Công dụng: Dùng trong các trường hợp cần chỉ mục và truy vấn hiệu quả.
Lệnh cài đặt:
CREATE EXTENSION btree_gin;
8. btree_gist
Chức năng: Cung cấp hỗ trợ thao tác B-tree dựa trên chỉ mục GiST.
Công dụng: Dùng trong các trường hợp cần chỉ mục đa chiều và truy vấn phức tạp.
Lệnh cài đặt:
CREATE EXTENSION btree_gist;
9. cube
Chức năng: Cung cấp hỗ trợ dữ liệu đa chiều.
Công dụng: Phù hợp với các trường hợp cần xử lý dữ liệu đa chiều, như kho dữ liệu, phân tích OLAP, v.v.
Lệnh cài đặt:
CREATE EXTENSION cube;
10. fuzzystrmatch
Chức năng: Cung cấp tính năng khớp chuỗi mờ.
Công dụng: Dùng cho tìm kiếm mờ, làm sạch dữ liệu, v.v.
Lệnh cài đặt:
CREATE EXTENSION fuzzystrmatch;
11. plpgsql
Chức năng: Hỗ trợ ngôn ngữ PL/pgSQL.
Công dụng: Dùng để viết các thủ tục lưu trữ và trình kích hoạt.
Lệnh cài đặt:
CREATE EXTENSION plpgsql;
12. tablefunc
Chức năng: Cung cấp hỗ trợ các hàm bảng.
Công dụng: Dùng cho truy vấn chéo bảng, xoay bảng dữ liệu, v.v.
Lệnh cài đặt:
CREATE EXTENSION tablefunc;
13. dblink
Chức năng: Cung cấp tính năng kết nối liên cơ sở dữ liệu.
Công dụng: Dùng để truy vấn dữ liệu từ cơ sở dữ liệu khác.
Lệnh cài đặt:
CREATE EXTENSION dblink;
14. postgres_fdw
Chức năng: Cung cấp tính năng truy cập cơ sở dữ liệu PostgreSQL ngoại vi.
Công dụng: Dùng cho truy vấn liên cơ sở dữ liệu và tích hợp dữ liệu.
Lệnh cài đặt:
CREATE EXTENSION postgres_fdw;
15. pgcrypto
Chức năng: Cung cấp tính năng mã hóa và giải mã.
Công dụng: Dùng cho nhu cầu bảo mật dữ liệu, băm, v.v.
Lệnh cài đặt:
CREATE EXTENSION pgcrypto;
Cài Đặt và Sử Dụng Mô-đun Mở Rộng
Trong ServBay, bạn có thể cài đặt và sử dụng mô-đun mở rộng PostgreSQL theo các bước sau:
Kết nối đến cơ sở dữ liệu PostgreSQL:
bashpsql -U your_username -d your_database
1Cài đặt mô-đun mở rộng:
sqlCREATE EXTENSION module_name;
1Xác minh cài đặt:
sql\dx
1
Dưới đây là ví dụ kích hoạt pg_trgm
psql (16.3 (ServBay))
Type "help" for help.
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
----------+---------+------------+------------------------------
pgcrypto | 1.3 | public | cryptographic functions
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 rows)
postgres=# CREATE EXTENSION pg_trgm;
CREATE EXTENSION
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
----------+---------+------------+-------------------------------------------------------------------
pg_trgm | 1.6 | public | text similarity measurement and index searching based on trigrams
pgcrypto | 1.3 | public | cryptographic functions
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(3 rows)
postgres=#
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Truy Vấn Các Mô-đun Bao Gồm Trong PostgreSQL
Trong ServBay, bạn có thể xem các mô-đun PostgreSQL bằng lệnh sau:
SELECT * FROM pg_available_extensions order by name;
Một kết quả mẫu như sau:
name | default_version | installed_version | comment
------------------------------+-----------------+-------------------+---------------------------------------------------------------------------------------------------------------------
address_standardizer | 3.4.2 | | Used to parse an address into constituent elements. Generally used to support geocoding address normalization step.
address_standardizer_data_us | 3.4.2 | | Address Standardizer US dataset example
adminpack | 2.1 | | administrative functions for PostgreSQL
amcheck | 1.3 | | functions for verifying relation integrity
autoinc | 1.0 | | functions for autoincrementing fields
bloom | 1.0 | | bloom access method - signature file based index
btree_gin | 1.3 | | support for indexing common datatypes in GIN
btree_gist | 1.7 | | support for indexing common datatypes in GiST
citext | 1.6 | | data type for case-insensitive character strings
cube | 1.5 | | data type for multidimensional cubes
dblink | 1.2 | | connect to other PostgreSQL databases from within a database
dict_int | 1.0 | | text search dictionary template for integers
dict_xsyn | 1.0 | | text search dictionary template for extended synonym processing
earthdistance | 1.1 | | calculate great-circle distances on the surface of the Earth
file_fdw | 1.0 | | foreign-data wrapper for flat file access
fuzzystrmatch | 1.2 | | determine similarities and distance between strings
hstore | 1.8 | | data type for storing sets of (key, value) pairs
insert_username | 1.0 | | functions for tracking who changed a table
intagg | 1.1 | | integer aggregator and enumerator (obsolete)
intarray | 1.5 | | functions, operators, and index support for 1-D arrays of integers
isn | 1.2 | | data types for international product numbering standards
lo | 1.1 | | Large Object maintenance
ltree | 1.2 | | data type for hierarchical tree-like structures
moddatetime | 1.0 | | functions for tracking last modification time
old_snapshot | 1.0 | | utilities in support of old_snapshot_threshold
pageinspect | 1.12 | | inspect the contents of database pages at a low level
pg_buffercache | 1.4 | | examine the shared buffer cache
pg_freespacemap | 1.2 | | examine the free space map (FSM)
pg_jieba | 1.1.1 | | a parser for full-text search of Chinese
pg_prewarm | 1.2 | | prewarm relation data
pg_stat_statements | 1.10 | | track planning and execution statistics of all SQL statements executed
pg_surgery | 1.0 | | extension to perform surgery on a damaged relation
pg_trgm | 1.6 | 1.6 | text similarity measurement and index searching based on trigrams
pg_visibility | 1.2 | | examine the visibility map (VM) and page-level visibility info
pg_walinspect | 1.1 | | functions to inspect contents of PostgreSQL Write-Ahead Log
pgcrypto | 1.3 | 1.3 | cryptographic functions
pgrouting | 3.6.2 | | pgRouting Extension
pgrowlocks | 1.2 | | show row-level locking information
pgstattuple | 1.5 | | show tuple-level statistics
plpgsql | 1.0 | 1.0 | PL/pgSQL procedural language
postgis | 3.4.2 | | PostGIS geometry and geography spatial types and functions
postgis_sfcgal | 3.4.2 | | PostGIS SFCGAL functions
postgis_tiger_geocoder | 3.4.2 | | PostGIS tiger geocoder and reverse geocoder
postgres_fdw | 1.1 | | foreign-data wrapper for remote PostgreSQL servers
refint | 1.0 | | functions for implementing referential integrity (obsolete)
seg | 1.4 | | data type for representing line segments or floating-point intervals
sslinfo | 1.2 | | information about SSL certificates
tablefunc | 1.0 | | functions that manipulate whole tables, including crosstab
tcn | 1.0 | | Triggered change notifications
tsm_system_rows | 1.0 | | TABLESAMPLE method which accepts number of rows as a limit
tsm_system_time | 1.0 | | TABLESAMPLE method which accepts time in milliseconds as a limit
unaccent | 1.1 | | text search dictionary that removes accents
vector | 0.7.0 | | vector data type and ivfflat and hnsw access methods
xml2 | 1.1 | | XPath querying and XSLT
zhparser | 2.2 | | a parser for full-text search of Chinese
(55 rows)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Thông qua các mô-đun mở rộng này, bạn có thể tăng cường chức năng của PostgreSQL để đáp ứng các nhu cầu ứng dụng phức tạp. ServBay bao gồm tất cả các mô-đun chính thức của PostgreSQL, người dùng có thể cài đặt và sử dụng theo nhu cầu.