我在BAT学到的技术工具-数据库访问组件-python版本 - Go语言中文社区

我在BAT学到的技术工具-数据库访问组件-python版本


1. 面对的问题

编写可以灵活&高效访问数据库的程序,以python为例。
性能要好:无fd,内存泄漏;
灵活变更:数据库表变更,程序需要变更的地方明确,且改动尽量简单;

备注:互联网产品使用mysql,一般分为线上和线下数据库,需要关注的点也不尽相同,本次以线下离线数据库为例。

2. 现在的实现方式:python db-api

![python代码片段1](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-12 下午3.18.23.png)
![python代码片段2](http://7u2g5z.com1.z0.glb.clouddn.com/屏幕快照 2015-01-12 下午3.18.42.png)

  • 说明
    cnt:mysql每次查询的context,每次连接并关闭,无连接池管理。
    sql:字符串,自己拼装的sql语句,修改容易出错。
    obj_data:sql查询获得的结果集,通过偏移index访问。

  • 缺点

    • 查询数据库每次重新建立连接不合理。
    • 查询语句手动维护,修改容易出错,需要同时看mysql表的schema来修改。
    • 查询结果集根据偏移量来访问,不易于变更,如:列的顺序变化。

3. 一个优化解决方案

豆瓣后端使用的orm工具
pip install sqlalchemy

Notice that the Core and raw SQL achieved comparable insertion speed while the ORM is much slower than the other two.

3. 另一个解决方案

  • 也有很多时候我们希望开放&共享mysql中的数据
    这就需要有支持快速搭建restful web接口和字段说明的服务
  • beego:一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架

jumbo install go
go get github.com/astaxie/beego

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/abb1d24e173a
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-12 11:58:44
  • 阅读 ( 1597 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢