老师您好,在flask sqlalchemy分库分表以及分布式数据库相关的最佳实践方面有哪些建议?
来源:6-1 什么是进程
null_386
2019-06-04
老师您好,在flask sqlalchemy分库分表以及分布式数据库相关的最佳实践方面有哪些建议?
2回答
-
null_386
提问者
2019-06-14
感谢七月老师的解答,后面结合我的业务特点,决定使用分区的方式来解决。
MySQL单表记录在1000万条以下可以获得较好的性能;
预估的每个商户体量会比较大,所有商户数据放在一起,单表性能太差;
单个商户订单预估的每月是900万条记录;
使用关系型数据库,不使用nosql,因为交易类型的数据,需要使用事务来保证交易的完整性;nosql虽然具有良好的扩展性,但是事务的保证是弱点;
按月分区的另外一个好处是,热点和活跃数据往往是最近几个月的数据,历史数据的查询频率非常低,历史月份的数据在后期清理和迁移也很方便,方便为主库腾出更多可用空间;
另外flask以及其它使用ORM的框架来做分表,会大大增加代码的复杂度和维护成本。在ORM上也实现了分表的方案,也可以实现动态按月分表,最终没有采用,也是因为不想增加代码的维护成本和复杂度。把分表的工作交给mysql底层去处理。
https://github.com/kevin386/flask-sharding-table/blob/master/demo.py另外我把不同领域产生的数据放到不同的库,暂时会考虑使用同一个实例,如果后期需要扩容再分实例,把不同领域的库按实例拆分出去。
非常喜欢七月老师的课程讲解,非常有深度。希望有更多机会向七月老师请教和交流,留下QQ: 343469394
012019-06-17 -
7七月
2019-06-05
分库、分表和分布式数据库不是一个概念。SQlalchemy支持连接多个数据库,但是这不是分库、分表。我不知道你说的是 水平切割、还是垂直切割?这需要具体一些,还有就是最佳实践是这个概念挺模糊的。
00
相似问题