作者windylam (風嵐)
看板Soft_Job
標題[請益] SQL在專案上的使用方式和資料庫設計
時間Fri Oct 19 19:05:45 2018
小弟最近在工作上碰上一些狀況,但是因為經歷少
不知道這樣是不是常見的作法,所以來到版上跟各位大大請益
主題開始:
小弟最近剛加入一個新的專案,前面已經有一位同事先開始做了
我們使用 MySQL 和 Flask-SQLALchemy 來操作資料庫
但有兩個地方是小弟不太理解的
第一個部分:
先前的同事沒有使用 SQLAlchemy 的 ORM 功能,所有對 DB 的操作都是使用 RAW SQL
的方式來寫
感覺這樣寫好像執行會比較快?
第二個部分:
將資料拆成多個資料庫來分類,這邊我比較疑惑的是
這樣子做如果要做 JOIN 效能上和 MySQL 備份還原上會不會比較差呢?
之前小弟在使用上都是乖乖照 ORM 的用法和以及把資料庫的資料放在同一個 DB 裡面
所以第一次遇到這樣的做法,不知道專案上這樣是常見的方式嗎?
寫過的不多,希望有能大大分享一下
感謝各位的閱讀
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.139.193
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1539947148.A.186.html
1F:→ rocwild: 手寫SQL一般來講是比較快。如果你的專案對於處理速度有特 10/19 20:06
2F:→ rocwild: 別的要求的話手寫是有它的好處。ORM主要圖的就是一個方便 10/19 20:06
3F:→ rocwild: 。 10/19 20:06
4F:推 alihue: 1. 都用python了,哪個套件效能好好像不是很重要? 10/19 20:09
5F:→ rocwild: 至於資料庫分開就要看你的需求是什麼了。現在很流行micro 10/19 20:09
6F:→ rocwild: service設計,但是不代表每個專案都適合那種設計。 10/19 20:09
7F:→ alihue: 2. 新專案設計跨資料庫是over design,難開發維護 10/19 20:10
8F:→ qrtt1: SQLAlchemy 預設會開 connection pool 比自己直接使用特定 10/19 20:41
9F:→ qrtt1: 的 db api driver 會方便些。 10/19 20:42
10F:推 ripple0129: 分資料庫效能更差的話沒人會去分了,還不能join搞自己 10/19 20:54
11F:→ ripple0129: 何苦,當然是為了效能。SQLAlchemy model可以寫哪個 10/19 20:54
12F:→ ripple0129: 資料庫哪個table,底層自己會幫你處理connection蠻方 10/19 20:54
13F:→ ripple0129: 便的 10/19 20:54
14F:推 vn509942: 適當使用ORM避免一堆注入的問題 10/19 21:25
15F:推 iamshiao: 1、會比較快 2、會比較差,所以怎麼切很重要 10/21 14:02