Python Connection Pooling Pada Database Mysql

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Python Connection Pooling Pada Database Mysql

Connection pooling adalah strategi yang melibatkan daur ulang koneksi database untuk beberapa permintaan saat kueri telah diselesaikan.

Biasanya, ini dilakukan dengan memperkenalkan perangkat lunak yang disebut connection pool antara server basis data dan aplikasi klien yang bertanggung jawab untuk mengelola koneksi antara keduanya.

Saat membuat koneksi, rangkaian operasi yang cukup panjang harus dijalankan sebelum kueri benar-benar dijalankan oleh server database.

Connection pooling mencoba mengamortisasi biaya operasi ini dengan menjaga koneksi tetap terbuka setelah kueri awal dan menggunakannya kembali untuk menjalankan kueri tambahan.

Dalam sistem ini, klien terhubung ke connection pool. Klien memperlakukan pooler seolah-olah itu adalah database dan pooler menafsirkan kueri untuk memberikan koneksi yang sesuai ke klien.

Satu hal yang perlu diperhatikan adalah bahwa masih ada overhead yang terlibat dalam membuka dan menutup koneksi antara klien dan pooler.

Koneksi ini, bagaimanapun biasanya memiliki overhead yang lebih rendah karena sebagian besar proses berat terjadi saat membuat koneksi ke database itu sendiri.

A) Bagaimana Connection Pool di Python ?


Jika di tutorial sebelumnya kita telah belajar membuat koneksi ke database mysql dan juga sudah menjalankan beberapa query Mysql menggunakan python.

Modifikasi koneksi database yang ada pada tutorial sebelumnya dengan menambahkan library MySQLConnectionPool. Perhatikan kode program berikut:

from mysql.connector.pooling import MySQLConnectionPool
from mysql.connector import Error

dbconfig = {
"database":"halovinaaja_db",
"user" : "admin",
"password" : "admin"
}

try:
pool = MySQLConnectionPool(pool_name = "pool_a",
pool_size = 2, #default is 5
**dbconfig)
print("The connection pool is created with a name: ",pool.pool_name)
print("The pool size is:",pool.pool_size)

except Error as er:
print("Error code:", er.errno)
print("Error message:", er.msg)

Dari kode diatas kita mempunya sebuah connection pool dengan nama "pool_a". Pool Size bisa diartikan bahwa hanya ada 2 koneksi yang terhubung ke database Mysql.

Koneksi ke database akan kembali terbuka jika salah satu atau kedua koneksi yang sedang berjalan telah expired ataupun telah di tutup oleh sistem.

Jika ada koneksi ke-3 dan seterusnya maka akan mendapatkan response error.

Pertanyaanya sekarang bagaimana jika sistem ingin tetap menghubungkan beberapa pun koneksi ke database yang di minta oleh service client ?

Untuk menangani hal ini Anda perlu membuat koneksi baru dengan menambahkan perintah


add_connection()


B) Video Tutorial


Baca artikel lainya:


  1. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  2. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  3. Tutorial bassic Mysql bagian 3 - Filtering Data

  4. Tutorial bassic Mysql bagian 4 - Grouping Data 

  5. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  6. Tutorial bassic Mysql bagian 6 - Mysql Replace Statement

  7. Membuat service OTP bagian 1 - OTP dan PIN

  8. Membuat service OTP bagian 2 - Sequence Diagram

  9. Membuat service OTP bagian 3 - Model dan Serializer

  10. Membuat  service OTP bagian 4 - Validate OTP

  11. Membuat  service OTP bagian 5 - Api Client Service

  12. Membuat service user login bagian 1 - Konfigurasi Database

  13. Membuat service user login bagian 2 - Serializer dan JWT

  14. Membuat CRUD service product bagian 1 - Models Product

  15. Membuat CRUD service product bagian 2 - Function Serializer

  16. Membuat CRUD service product bagian 3 - Api Client Service

  17. Membaut CRUD service product bagian 4 - Auth User

  18. Membuat CRUD service product bagian 5 - TDR File Log

  19. Membuat CRUD service product bagian 6 - Unit Test

  20. Membuat service user register bagian 1 - Django

  21. Membuat Service user register bagian 2 - Django

  22. Membuat service filter dan download file CSV di django

  23. Django upload file menggunakan FileSystemStorage

  24. Tips meningkatkan kualitas code pada bahasa python

  25. Cara memfilter tipe data string pada golang dan python

  26. Mengubah format datetime pada bahasa python

  27. Mengolah data CSV dengan python pandas

  28. Sample join data CSV di python menggunakan pandas

  29. Menggunakan redis PUB/SUB untuk aplikasi python

  30. Implementasi blockchain ethereum pada industri real estate