iT邦幫忙

DAY 10
0

Play with Flask And MongoDB系列 第 11

Day 10 - MongoDB Connection pooling

  • 分享至 

  • xImage
  •  

這幾天因為剛開始新的工作,

整個進度落下了三天,

新工作讓我挺有期待的。

還是來談談Connection pooling的問題吧,

一般來說我們作一次資料庫的動作(CRUD任一的時候)標準流程是:

連線 ->發request->依照需求與request的data作相對應的資料庫控制,

基本的sample code 是這樣的

from pymongo import MongoClient

db = MongoClient('localhost', 27017)

db = client.test_database

collection = db.test_collection

collection.insert(title="Hello World")

db.close()

關掉每一個使用完畢的連線是一種好習慣,

因為若是少了關閉的這個動作,

這個連線將會一直佔用您的記憶體空間,

但是若是每次的request 都要進行一次新的 DB Connect,

是一件很沒有效率的事情,

建立一個新的DB Connect是一個很沒有效率的事情,

太頻繁的建立連線與關閉連線稱之為Connection Churn,

所以我們要如何避免這些事情呢?

通常都會建立一個Connection 的 cache,

Flask 中 通常都是在app/__init__.py中 建立連線,

然後在app/model.py 中規範資料庫的相關欄位與驗證,

目前大部分的MongoDB Framework都有這部份的防護。

在我的 Sample 中也有範例可以參考。

今天先到這吧!

謝謝各位

參考資料:Dive into Connection pooling


上一篇
Day 10 - Oauth Server 與 Flask-login的Demo
系列文
Play with Flask And MongoDB11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言