小公司里面的 Python 后端,数据库(MySQL)到底要学习到什么程度?
📆 最近更新:2022 年 4 月 8 日,橡皮擦的第 <font color=red>611</font> 篇原创博客 @[toc]
⛳️ Python 后端数据库要求
作为一个 Python 后端程序员,每天基本都会与数据库打交道,而在二线城市,你的数据库要掌握到哪种程度,才可以成为一名合格的初中级工程师呢?
本篇博客为大家详细说明一个普普通通的省会城市,Python 后端对 MySQL 的要求。
不要类比大厂,大多数人都在从事着普通的应用开发。本文面向的是初中级程序员,请各位高级程序员和架构师,不要对号入座。
⛳️ 我们都在用 MySQL 做什么?
基本工作场景总结如下:
日常使用最多的是查询,附带增删改。
数据库建表一般不使用命令,直接用可视化工具操作即可,一般都安装一个 Navicat 在自己的电脑上(远程也用这个连接),当然九成九使用的也是被免费版本;
常用的索引是主键索引,外键索引,唯一索引,关联索引;
公司里面一般会使用常用的 DAO 框架,所以很少直接写 SQL 语句,如果你会写,会大大的加分;
数据库单表数据一般不会特别大,百万级数据很少能达到;
部分公司也存在分库分表,负载均衡等实践,但是一般能上这些内容的公司,都会有运维部分,作为一个单纯的后端开发人员,应用即可,很少会涉及,而且你可以使用一些云数据库,非常便捷的就可以解决负载问题
⛳️ 数据库加分项
其实在公司,后端程序员也有职能上的区分,一般按照工作年限和级别区分,技术好一些的,会涉及表结构,表优化等操作,新入职的,仅涉及一些业务逻辑的编写,相应的,面试的时候碰到的问题,也会有所差异。
初级程序员:询问逻辑实现,偏 Python 技术体系,偏框架;
中级程序员:询问底层框架搭配,询问数据库优化,询问大数据处理……
⛳️ 数据库学习线路
如果你非计算机专业出身,通过自学或者培训进入到了 IT 行业,并且从事的是 Python 后端相关岗位。建议你的学习路线如下所示:
MySQL 不同版本环境搭建;
MySQL 基本操作;
数据查询;
常用函数;
索引;
存储过程;
触发器;
视图;
事务。
以上内容可以简单学习,争取都了解到,其中可以把精力重点放在查询和索引上。这部分的知识点细节如下:
数据库操作,创建、查看、选择、删除;
数据表操作,创建、查看、修改、重命名、删除;
SQL 语句操作,插入、修改、删除;
数据查询,基本查询、单表查询、聚合函数查询、连接查询、子查询、合并查询
基本内容掌握完毕,就要了解一些 MySQL 中涉及的函数了,例如:
数学函数
字符串函数
日期时间函数
条件判断函数
系统信息函数
加密函数
对于 MySQL 高级部分,可以从存储过程开始学习,接下来的就是触发器、视图、事务等内容,这些在 Python 后端工作中都会反复涉及。
如果这些学下来还不满足,可以针对数据库备份还原,性能优化,数据库安全等内容学习,不过这些知识点的上手难度有些大,初级阶段可以绕一下或者躲一下。
在学习 MySQL 的时候,如果你能对数据库表结构关系(例:一对多)还有范式(例:第一范式)有所理解,相信对你的后续的学习帮助极大。
特别备注:Python 后端的操作大量的涉及 SQL 语句操作,所以下述命令要好好学习:
select
where
limit
order by
group by
join
left join
……
⛳️ 数据库运维日常
Python 后端程序员除了应用逻辑的编码工作外,有时还需要对产线数据库日志进行分析,上手最简单的就是慢日志和二进制日志,这些内容可以参考橡皮擦的运维系列和 MySQL 优化系列专栏:
对于 MySQL 锁相关的知识,可以在工作中逐步补充,但是初学阶段,还是需要针对面试准备一些资料,这个知识点在你面试后端的时候,被问到的概率极高。
接下来你可以准备回答如下问题:
什么是共享锁
什么是排他锁
锁的粒度
描述乐观锁、悲观锁
⛳️ 总结
如果上述基础知识都学习完毕之后,那可以重点关注一下 Python 中提供相应能力的第三方库,例如 pymysql,mysqlclient,peewee,SQLAlchemy 等内容。
📗 希望你找到自己喜欢的工作,最好是在自己的老家。📗
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/8588c26f4edaa11d04b60041a】。文章转载请联系作者。
评论