ว่าด้วย Extension บน PostgreSQL
Published: 2024-06-27 02:58:34

**PostgreSQL Extension** เป็นคุณลักษณะที่ดีอย่างหนึ่งของฐานข้อมูล Postgres 
ที่ช่วยเสริมที่ช่วยเพิ่มประสิทธิภาพการทำงานของระบบฐานข้อมูล โดยทำหน้าที่ขยายฟังก์ชันการทำงานของ PostgreSQL ให้ครอบคลุมไปกว่าที่ติดตั้งมาในระบบพื้นฐาน โมดูลเสริมเหล่านี้สามารถเพิ่มฟีเจอร์ใหม่ ๆ ดังต่อไปนี้

**ชนิดข้อมูลเพิ่มเติม:** โมดูลเสริมสามารถนำเสนอชนิดข้อมูลใหม่ ๆ ที่ออกแบบมาโดยเฉพาะสำหรับข้อมูลประเภทเฉพาะ เช่น ข้อมูลทางภูมิศาสตร์ หรือ เอกสาร JSON
**ฟังก์ชันและตัวดำเนินการ:** โมดูลเสริมสามารถจัดเตรียมฟังก์ชันและตัวดำเนินการใหม่ ๆ ที่สามารถใช้ในคิวรี SQL เพื่อดำเนินงานเฉพาะทาง
**ฟีเจอร์ใหม่:** โมดูลเสริมสามารถนำเสนอฟีเจอร์ใหม่ ๆ เพิ่มเติมให้กับ PostgreSQL โดยสิ้นเชิง เช่น การรองรับการค้นหาแบบเต็มรูปแบบ หรือ การเข้ารหัส

## ข้อดีของการใช้โมดูลเสริม PostgreSQL##
**เพิ่มฟังก์ชันการทำงาน:** โมดูลเสริมช่วยให้คุณสามารถทำงานกับ PostgreSQL ได้ในสิ่งที่ไม่สามารถทำได้ในระบบพื้นฐาน
**ความยืดหยุ่น:** โมดูลเสริมช่วยให้คุณปรับแต่ง PostgreSQL ให้ตรงกับความต้องการเฉพาะของคุณ
**การสนับสนุนจากชุมชน:** มีชุมชนนักพัฒนาที่สร้างและดูแลรักษาโมดูลเสริม PostgreSQL อยู่มากมาย ดังนั้นคุณจึงมักจะได้รับความช่วยเหลือเมื่อต้องการ

##สิ่งที่ควรคำนึงถึงเมื่อใช้โมดูลเสริม PostgreSQL:##

**โมดูลเสริมไม่ใช่ทุกโมดูลที่สร้างเท่ากัน:** โมดูลเสริมบางโมดูลได้รับการดูแลรักษาอย่างดีและได้รับความนิยมอย่างกว้างขวาง ในขณะที่โมดูลเสริมอื่น ๆ อาจมีความน่าเชื่อถือที่น้อยกว่า หรือมีเอกสารประกอบที่จำกัด
**ความปลอดภัย:** สิ่งสำคัญคือต้องระมัดระวังเกี่ยวกับการติดตั้งโมดูลเสริมจากแหล่งที่ไม่น่าเชื่อถือ ตรวจสอบให้แน่ใจว่าคุณเข้าใจว่าโมดูลเสริมทำอะไรก่อนติดตั้ง
**ความเข้ากันได้:** โมดูลเสริมอาจไม่เข้ากันได้กับ PostgreSQL ทุกเวอร์ชัน

## การจัดการ Extension ##

###ในการตรวจสอบ extension ที่อยู่ใน PostgreSQL###
 สามารถตรวจสอบผ่านคำสั่ง SQL

```sql
SELECT * FROM pg_available_extensions;
```
จะเป็น view ในการแสดงรายการ extension ที่พร้อมใช้งาน ใน server ของเราโดยจะแสดงข้อมูล

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0x4qi9hqm4v12lr7w2sc.png)
- name: ชื่อ extension
- default_version:
- install_version: เวอร์ชั่นที่ทำการติดตั้งอยู่ในฐานข้อมูล
- comment: คำอธิบาย extension

###การตรวจสอบ Extension ที่ติดตั้งบนฐานข้อมูล###
สามารถทำผ่านคำสั่ง SQL
```SQL
SELECT * FROM pg_extension;
```
จะแสดงรายการที่ extension ติดตั้งในฐานข้อมูล

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgmbujvs09plpxb1naq3.png)
โดยแสดงข้อมูล
- oid: object id ของ extension  
- extname:ชื่อ extension
- extowner: id owner ของ object 
- extnamespace
- extrelocatable
- extversion: version ของ extension 
- extconfig: 
- extcondition: 

###ในการติดตั้งเข้าไปในฐานข้อมูลผ่านคำสั่ง###

```sql
CREATE EXTENSION {extension_name};
```
เมื่อ extension_name เป็นชื่อที่ต้องการติดตั้ง

ในการถอดถอน extension ออกจากฐานจ้อมูลผ่านคำสั่ง

>  **<u>คำเตือน</u>**
> 1.คุณต้องมีสิทธิ์ CREATE EXTENSION ในฐานข้อมูลที่คุณต้องการติดตั้ง extension
> 2. ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลด extension ที่ถูกต้องสำหรับเวอร์ชัน PostgreSQL ของคุณ
> 3. บาง extension อาจมีข้อกำหนดเบื้องต้นเพิ่มเติม โปรดอ่านเอกสารประกอบของ extension สำหรับข้อมูลเพิ่มเติม

```sql
DROP EXTENSION {extension_name};
```
เมื่อ extension_name เป็นชื่อที่ต้องการติดตั้ง
>  **<u>คำเตือน</u>**
> 1. คุณต้องมีสิทธิ์ DROP EXTENSION ในฐานข้อมูลที่คุณต้องการถอดถอน Extension
> 2. ตรวจสอบให้แน่ใจว่าคุณได้ลบวัตถุใดๆ ที่สร้างโดย Extension ออกก่อน มิฉะนั้น คุณอาจได้รับข้อความแสดงข้อผิดพลาด
> 3. บาง Extension อาจมีขั้นตอนการถอนการติดตั้งเพิ่มเติม โปรดอ่านเอกสารประกอบของ Extension สำหรับข้อมูลเพิ่มเติม

##กรณีที่ต้องการติดตั้ง Extension ที่ไม่ปรากฏในรายการที่อยู่ Postgres##
ในบาง extension ไม่ปรากฏผ่าน pg_available_extensions ให้ไม่สามารถติดตั้ง extension บนฐานข้อมูลได้ถ้าต้องการติดตั้ง

1. **ดาวน์โหลดซอร์สโค้ด Extension**: คุณสามารถดาวน์โหลดซอร์สโค้ด Extension จากเว็บไซต์ของผู้พัฒนา
2. **คอมไพล์ Extension:** ขั้นตอนการคอมไพล์ Extension แตกต่างกันไปขึ้นอยู่กับ Extensionโปรดดูเอกสารประกอบของ Extension สำหรับข้อมูลเพิ่มเติม
3. **ติดตั้ง Extension:** หลังจากคอมไพล์ Extension แล้ว คุณสามารถติดตั้ง Extension ได้โดยใช้คำสั่ง SQL CREATE EXTENSION

> **<u>ข้อควรระวัง:</u>**
> - ติดตั้ง Extension จากแหล่งที่เชื่อถือได้เท่านั้น
> - ตรวจสอบให้แน่ใจว่า Extension เข้ากันได้กับเวอร์ชัน PostgreSQL ของคุณ
> - บาง Extension อาจมีข้อกำหนดเบื้องต้นเพิ่มเติม โปรดอ่านเอกสารประกอบของ Extension สำหรับข้อมูลเพิ่มเติม
> - ก่อนติดตั้ง Extension ใดๆ โปรดสำรองฐานข้อมูลของคุณไว้ก่อน
> - ตรวจสอบให้แน่ใจว่าคุณเข้าใจผลกระทบของ Extension ที่คุณกำลังติดตั้ง
> - บาง Extension อาจส่งผลต่อประสิทธิภาพการทำงานของ PostgreSQL ของคุณ