[請益] SQL在專案上的使用方式和資料庫設計

作者: windylam (風嵐)   2018-10-19 19:05:45
小弟最近在工作上碰上一些狀況,但是因為經歷少
不知道這樣是不是常見的作法,所以來到版上跟各位大大請益
主題開始:
小弟最近剛加入一個新的專案,前面已經有一位同事先開始做了
我們使用 MySQL 和 Flask-SQLALchemy 來操作資料庫
但有兩個地方是小弟不太理解的
第一個部分:
先前的同事沒有使用 SQLAlchemy 的 ORM 功能,所有對 DB 的操作都是使用 RAW SQL
的方式來寫
感覺這樣寫好像執行會比較快?
第二個部分:
將資料拆成多個資料庫來分類,這邊我比較疑惑的是
這樣子做如果要做 JOIN 效能上和 MySQL 備份還原上會不會比較差呢?
之前小弟在使用上都是乖乖照 ORM 的用法和以及把資料庫的資料放在同一個 DB 裡面
所以第一次遇到這樣的做法,不知道專案上這樣是常見的方式嗎?
寫過的不多,希望有能大大分享一下
感謝各位的閱讀
作者: rocwild (外國死小孩)   2018-10-19 20:06:00
手寫SQL一般來講是比較快。如果你的專案對於處理速度有特別的要求的話手寫是有它的好處。ORM主要圖的就是一個方便。
作者: alihue (wanda wanda)   2018-10-19 20:09:00
1. 都用python了,哪個套件效能好好像不是很重要?
作者: rocwild (外國死小孩)   2018-10-19 20:09:00
至於資料庫分開就要看你的需求是什麼了。現在很流行microservice設計,但是不代表每個專案都適合那種設計。
作者: alihue (wanda wanda)   2018-10-19 20:10:00
2. 新專案設計跨資料庫是over design,難開發維護
作者: qrtt1 (有些事,有時候。。。)   2018-10-19 20:41:00
SQLAlchemy 預設會開 connection pool 比自己直接使用特定的 db api driver 會方便些。
作者: ripple0129 (perry tsai)   2018-10-19 20:54:00
分資料庫效能更差的話沒人會去分了,還不能join搞自己何苦,當然是為了效能。SQLAlchemy model可以寫哪個資料庫哪個table,底層自己會幫你處理connection蠻方便的
作者: vn509942 (如履薄冰)   2018-10-19 21:25:00
適當使用ORM避免一堆注入的問題
作者: iamshiao (CircleHsiao)   2018-10-21 14:02:00
1、會比較快 2、會比較差,所以怎麼切很重要

Links booklink

Contact Us: admin [ a t ] ucptt.com