[请益] 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