Modul Sambungan Rasmi PostgreSQL
Sebagai persekitaran pembangunan web tempatan yang berkuasa, ServBay telah menyepadukan pelbagai alat pembangunan, termasuk pangkalan data PostgreSQL yang kaya dengan ciri. Kehebatan PostgreSQL bukan sahaja terletak pada fungsi utamanya, malah pada ekosistem sambungan rasminya yang luas. ServBay telah memasang kebanyakan modul sambungan rasmi PostgreSQL secara pratetap, membolehkan pembangun mengaktifkan dan menggunakannya terus dalam persekitaran tempatan, sekali gus memperluaskan kefungsian pangkalan data untuk memenuhi keperluan aplikasi kompleks.
Dokumen ini akan memperkenalkan beberapa modul sambungan rasmi PostgreSQL yang biasa digunakan, serta panduan pemasangan dan penggunaannya dalam ServBay.
Gambaran Keseluruhan Modul Sambungan Biasa
PostgreSQL menawarkan banyak modul sambungan rasmi yang merangkumi pelbagai fungsi daripada pemantauan prestasi, jenis data hinggalah carian teks penuh. Berikut ialah beberapa sambungan yang lazim digunakan oleh pembangun dalam tugasan harian mereka:
1. pg_stat_statements
- Fungsi: Mengumpul dan merekod statistik bagi semua penyataan SQL yang dijalankan di pelayan, termasuk bilangan panggilan, jumlah masa pelaksanaan, bilangan baris yang diproses dan sebagainya.
- Kegunaan: Membantu pentadbir pangkalan data dan pembangun menganalisis prestasi pertanyaan, mengenal pasti pertanyaan perlahan dan lokasi sempit untuk pengoptimuman.
- Perintah pemasangan:sqlNota: Selepas pemasangan, anda biasanya perlu tetapkan
CREATE EXTENSION pg_stat_statements;
1shared_preload_libraries = 'pg_stat_statements'
dalam failpostgresql.conf
dan mulakan semula perkhidmatan PostgreSQL untuk mengaktifkan dan mula mengumpul data. ServBay memudahkan pengubahsuaian konfigurasi ini.
2. pg_trgm
- Fungsi: Menyediakan fungsi pengukuran persamaan teks dan sokongan indeks berasaskan trigram (triplet aksara).
- Kegunaan: Untuk padanan kabur yang cekap, carian kesamaan dan carian teks penuh, amat berguna untuk mengurus kesilapan ejaan atau variasi data.
- Perintah pemasangan:sql
CREATE EXTENSION pg_trgm;
1
3. hstore
- Fungsi: Menyediakan jenis data yang membolehkan penyimpanan koleksi pasangan kunci-nilai dalam satu medan PostgreSQL.
- Kegunaan: Sesuai untuk menyimpan sifat dinamik, data tidak berstruktur atau separa berstruktur seperti data konfigurasi, metadata atau pilihan pengguna tanpa jadual yang ketat.
- Perintah pemasangan:sql
CREATE EXTENSION hstore;
1
4. citext
- Fungsi: Menyediakan jenis data rentetan teks yang tidak peka huruf besar kecil.
- Kegunaan: Untuk perbandingan data yang mengabaikan perbezaan huruf besar kecil, contohnya pada nama pengguna, alamat emel, atau tag—memudahkan logik aplikasi tanpa kerap menggunakan fungsi
LOWER()
. - Perintah pemasangan:sql
CREATE EXTENSION citext;
1
5. uuid-ossp
- Fungsi: Menyediakan fungsi untuk menjana UUID (Universal Unique Identifier) dengan pelbagai versi piawai (cth v1, v3, v4, v5).
- Kegunaan: Untuk menjana penanda unik global, biasa digunakan untuk kunci primer, ID sesi, atau pengenalan unik dalam sistem teragih.
- Perintah pemasangan:sqlNota: Nama sambungan mempunyai sengkang, jadi gunakan tanda petik dua dalam arahan
CREATE EXTENSION "uuid-ossp";
1CREATE EXTENSION
.
6. intarray
- Fungsi: Menyediakan fungsi dan operator tambahan untuk operasi pada tatasusunan integer.
- Kegunaan: Berguna jika anda perlu melakukan operasi set seperti persilangan, gabungan, pemeriksaan keanggotaan atau isihan terus dalam pangkalan data.
- Perintah pemasangan:sql
CREATE EXTENSION intarray;
1
7. btree_gin
- Fungsi: Menyokong operasi indeks GIN (Generalized Inverted Index) untuk jenis data B-tree seperti integer, teks, tarikh dan sebagainya.
- Kegunaan: Indeks GIN sering digunakan pada data yang mengandungi berbilang nilai seperti array,
hstore
atautsvector
;btree_gin
membolehkan anda menggunakan GIN untuk elemen yang boleh diindeks dengan B-tree, meningkatkan kecekapan pertanyaan. - Perintah pemasangan:sql
CREATE EXTENSION btree_gin;
1
8. btree_gist
- Fungsi: Memberikan sokongan operasi indeks GiST (Generalized Search Tree) untuk jenis data B-tree.
- Kegunaan: GiST adalah struktur indeks serba guna.
btree_gist
membolehkan penggunaan GiST pada data yang disokong B-tree—berguna untuk pelbagai jenis pertanyaan seperti julat atau pemeriksaan keanggotaan, dan untuk penciptaan indeks pada berbilang lajur. - Perintah pemasangan:sql
CREATE EXTENSION btree_gist;
1
9. cube
- Fungsi: Menyediakan jenis data untuk mewakili kiub atau titik multidimensi, bersama operator dan fungsi berkaitan.
- Kegunaan: Untuk bekerja dengan data multidimensi seperti data geospatial ringkas (titik 2D atau 3D), analisis multidimensi dalam gudang data atau beberapa aplikasi saintifik.
- Perintah pemasangan:sql
CREATE EXTENSION cube;
1
10. fuzzystrmatch
- Fungsi: Menyediakan pelbagai fungsi untuk menentukan kesamaan dan jarak antara dua rentetan, termasuk Levenshtein, Soundex, Metaphone dan lain-lain.
- Kegunaan: Untuk padanan kabur rentetan, semakan ejaan, pembersihan data dan penyahtiruan data.
- Perintah pemasangan:sql
CREATE EXTENSION fuzzystrmatch;
1
11. plpgsql
- Fungsi: Bahasa prosedur utama PostgreSQL, membolehkan pengguna menulis prosedur tersimpan, fungsi trigger dan blok kod tanpa nama.
- Kegunaan: Untuk melaksanakan logik perniagaan kompleks, automasi tugas dan pemprosesan data di peringkat pelayan.
plpgsql
dipasang secara lalai, tetapi boleh disahkan kewujudannya atau dipasang semula denganCREATE EXTENSION
. - Perintah pemasangan:sql
CREATE EXTENSION plpgsql;
1
12. tablefunc
- Fungsi: Menawarkan beberapa fungsi untuk memanipulasi dan menukar keseluruhan jadual, termasuk fungsi
crosstab
yang terkenal. - Kegunaan: Untuk pertanyaan jadual silang (data pivot), iaitu, menukar nilai unik dalam satu lajur menjadi lajur baharu—berguna untuk pelaporan dan analisis data.
- Perintah pemasangan:sql
CREATE EXTENSION tablefunc;
1
13. dblink
- Fungsi: Membolehkan sambungan dan pertanyaan ke pangkalan data PostgreSQL lain daripada dalam satu pangkalan data.
- Kegunaan: Untuk pemindahan data atau pertanyaan mudah antara pangkalan data berbeza tanpa memerlukan logik sambungan antara pangkalan data pada sisi aplikasi.
- Perintah pemasangan:sql
CREATE EXTENSION dblink;
1
14. postgres_fdw
- Fungsi: Menyediakan Foreign Data Wrapper (FDW) yang membolehkan akses dan carian pada jadual dari pangkalan data PostgreSQL luaran seolah-olah jadual itu tempatan.
- Kegunaan: Untuk integrasi data rentas pangkalan data dan pertanyaan bersama. Lebih berkuasa dan fleksibel daripada
dblink
, serta menyokong pengoptimuman pertanyaan lanjutan. - Perintah pemasangan:sql
CREATE EXTENSION postgres_fdw;
1
15. pgcrypto
- Fungsi: Menawarkan fungsi penyulitan dan penyahsulitan, termasuk fungsi hash, penyulitan simetri dan penyulitan kunci awam.
- Kegunaan: Untuk melaksanakan penyulitan data, menyimpan hash kata laluan, menjana atau mengesahkan tandatangan digital dan lain-lain pada peringkat pangkalan data.
- Perintah pemasangan:sql
CREATE EXTENSION pgcrypto;
1
Senarai di atas hanya sebahagian daripada modul sambungan rasmi PostgreSQL yang disediakan dalam ServBay. ServBay berusaha menawarkan sebahagian besar sambungan rasmi yang disediakan komuniti PostgreSQL supaya memenuhi keperluan pelbagai pembangun.
Cara Memasang dan Menggunakan Modul Sambungan PostgreSQL dalam ServBay
Dalam persekitaran ServBay, pemasangan dan penggunaan modul sambungan PostgreSQL amatlah mudah. Sambungan mesti diaktifkan untuk setiap pangkalan data secara berasingan—anda perlu membenarkan sambungan yang anda perlukan pada setiap pangkalan data secara individu.
Prasyarat:
- Pastikan ServBay sedang berjalan dan perkhidmatan pangkalan data PostgreSQL telah dimulakan.
Langkah-langkah Operasi:
Sambung ke pangkalan data PostgreSQL sasaran: Buka aplikasi terminal anda (seperti Terminal atau iTerm2 pada macOS), gunakan alat baris perintah
psql
untuk sambung ke pangkalan data yang anda ingin pasang sambungan. Secara lalai, nama pengguna PostgreSQL dalam ServBay ialahpostgres
, begitu juga nama pangkalan data asal.bashpsql -U your_username -d your_database
1Contohnya, untuk sambung ke pangkalan data asal
postgres
:bashpsql -U postgres -d postgres
1Jika anda diminta kata laluan, sila masukkan kata laluan root/postgres yang telah ditetapkan untuk PostgreSQL dalam ServBay.
Pasang modul sambungan: Setelah berjaya disambungkan, anda kini di antaramuka baris perintah
psql
. Jalankan perintahCREATE EXTENSION
untuk memasang sambungan yang diingini, gantikanmodule_name
dengan nama sambungan sebenar.sqlCREATE EXTENSION module_name;
1Contoh pemasangan sambungan
pg_trgm
:sqlCREATE EXTENSION pg_trgm;
1Sahkan pemasangan: Selepas pemasangan, gunakan perintah
\dx
untuk menyenaraikan semua sambungan yang telah dipasang dalam pangkalan data tersebut, sekaligus mengesahkan sama ada pemasangan anda berjaya.sql\dx
1
Contoh: Mengaktifkan Sambungan pg_trgm
Berikut ialah contoh interaksi penuh menggunakan baris perintah psql
untuk mengaktifkan sambungan pg_trgm
pada pangkalan data postgres
:
sql
# Jalankan perintah berikut dalam terminal untuk sambung ke pangkalan data
psql -U postgres -d postgres
# Selepas berjaya sambung, antaramuka psql akan dipaparkan
psql (16.3 (ServBay))
Type "help" for help.
postgres=# -- Lihat sambungan sedia ada (mungkin hanya plpgsql dan pgcrypto secara lalai)
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=# -- Pasang sambungan pg_trgm
postgres=# CREATE EXTENSION pg_trgm;
CREATE EXTENSION
postgres=# -- Lihat lagi senarai sambungan untuk pastikan pg_trgm telah berjaya dipasang
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=# -- Pemasangan berjaya. Sekarang anda boleh menggunakan fungsi dan operator dari pg_trgm dalam pangkalan data ini.
1
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
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
Menyemak Senarai Sambungan PostgreSQL Yang Tersedia dalam ServBay
Sebelum memasang sambungan, sangat berguna untuk mengetahui senarai sambungan yang tersedia bagi versi PostgreSQL yang dibekalkan bersama ServBay. Ini membantu anda menemui fungsi-fungsi yang mungkin berguna untuk projek anda.
Selepas anda sambung ke mana-mana pangkalan data PostgreSQL, jalankan pertanyaan SQL berikut untuk mendapatkan senarai sambungan yang disokong:
sql
SELECT * FROM pg_available_extensions ORDER BY name;
1
Pertanyaan ini akan memberikan jadual yang menyenaraikan semua modul sambungan yang tersedia dalam versi PostgreSQL dalam ServBay, termasuk nama, versi asal, sama ada telah dipasang pada pangkalan data semasa, dan penerangannya.
Contoh maklum balas (senarai berbeza mengikut versi ServBay dan PostgreSQL):
sql
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)
1
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
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
Perhatian: Senarai di atas hanyalah contoh. Senarai sebenar bersama versi akan berbeza mengikut kemas kini ServBay atau PostgreSQL.
Rumusan
Dengan menyediakan pelbagai sambungan rasmi PostgreSQL secara pratetap, ServBay sangat memudahkan proses memanfaatkan fungsi-fungsi berkuasa ini dalam persekitaran pembangunan tempatan anda. Tanpa perlu melibatkan proses pemasangan atau kompilasi manual, pembangun kini boleh mengaktifkan modul sambungan yang diperlukan hanya dengan arahan SQL yang ringkas dan menumpukan usaha pada pembangunan aplikasi sebenar. Dengan sambungan-sambungan ini, anda mudah menambah fungsi lanjutan pada projek anda seperti analisis prestasi, carian teks penuh, ciri keselamatan data dan banyak lagi.