数据库的SQL学习路线

韩楚风
领域专家: 数据库技术领域
2024-09-06 10:32:00

数据库知识的学习,对于后端开发,尤其是大数据方向的开发,那是必备的技能。

数据库有人说就是SQL的学习,其实不然,下面就来聊一聊。



首先要熟悉一款主流的数据库, 常用的如mysql, postgresql,oracle,建议从mysql开始,互联网应用非常广泛;


基础


要熟悉那些内容呢?

 

  1. 数据库的安装,如依赖库的安装,让数据库运行起来。简单的配置,如服务端的端口,数据存放的目录,配置文件的位置等;
  2. 基本的SQL,如创建库,表,用户,视图等对象,给用户授权。还有数据一致性的主键,外键,其它约束(check, unique,not null, default等)。
  3. 然后就可以针对应用来设计数据库的表,这就用到了3NF。

以上是最基础的,大学生毕设水平,几乎大部分人已经具备了,那你能进入大厂的优势是什么呢?
这就需要知道这些内容。


初级

 

  1. 数据库的用户,角色,拿一个用户啥都可以干,这就low了,这就需要系统的了解,数据库中的系统权限,数据库对角权限,还有数据库的访问控制。
  2. 数据库的数据组织层次,以及数据物理存储形式。只知道insert一条数据,但不知道它在那里;逻辑层次如 表空间, 数据库, 模式schema,表等;物理存储形式,如表与文件如何对应,如何管理。
  3.  SQL的结构,每条SQL有那几部分组成;排序,分组,窗口函数;以及连接,子查询,CTE语句,复杂SQL其实就是基础部分迭代;学习复杂SQL的编写;这就是SQL使用的能力;
  4. 索引的使用;不仅一条SQL能查到数据,还能在最短的时间查出来;索引的类型,不同索引的算法,以及适应的数据形式;索引失效的情况,即什么情况下能用到索引,而什么情况下索引却用不到。
  5. 存储过程,可重用的代码,在服务端执行;不过现在不太建议大量使用,不同类型数据库移植比较麻烦;
  6. 触发器,同上;
  7. 事务;在数据库中最核心的特征;事务的隔离级别,各级别下的并发发控制特点;在不同类型数据库中表现是不同的。
  8. 数据库的简单配置,当然不同与前面;内存缓存,存储位置等等,让自己使用时更加得心应手;
  9. 数据库的备份,恢复的方法有那几种,特点;这可以在应急时使用。

这就可以进入码农的状态,能够沉浸的写代码,解决bug。


进阶


想要在功能,或软件中有一点自己想法,那就需要了解更多。这里就不再是按工具,功能来了解,而是按特性。

  • 高可用
  1. 一个应用,需要考虑故障的情况下,数据丢失很少或不丢失;业务不中断或中断更短时间。
  2. 主备的搭建,主备同步的配置,主备业务转移方式;主备切换模式;每种模式下数据丢失情况和业务中断时长;
  3. 数据备份策略,比如每天全量备份一遍呢,还是每天增量备份,一周全量备份;这些如何搭建呢?备份的存放策略;
  4. 数据的恢复;有那些恢复方式;
  5. 两地三中心,如何做到;用到数据库功能,一堆工具,如何对接部署;
  6. 多节点时的数据一致性,事务并发控制;
  • 性能
  1. SQL语句性能的查看分析;
  2. 采用合理的事务隔离等级,锁表SQL等;
  3. 数据库配置,对性能的影响,如何调优配置;
  4. 部署级的性能提升,如读写分离的部署,带有负载均衡,连接池;
  5. 合理使用数据库功能,如分区表,物化视图,并发查询;调整刷盘间隔,调整日志数据量;
  6. 采用多种类型数据库的组合,如内存库,KV库,时序库;
  7. 采用更有效的架构模型,如CQRS;
  • 安全
  1. 基础安全策略还是必须的,更多的策略就要看应用的需要。
  2. 访问控制,如果你的库经常被别人登陆;可以设置基于IP,用户,库等等的访问限制;
  3. 用户-角色的自主访问控制策略,数据和表经常被别人删掉的困惑就可以解决;
  4. 加密;客户端与服务端之间通信信道加密;数据库中数据的加密;数据库中数据存储的加密;还有备份数据的加密;甚至客户端就对数据加密,在库中完全加密,这种情况下如何查询,性能提升;不同场景,数据类型采用的加密算法,这对性能影响非常大,以及后续的查询都有影响;

 

开源数据库postgresql的学习,已经成为主流方向,承蒙各位粉丝的关注和支持,经过一番努力学习教程已经成形,可以参见以下链接。

【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门-CSDN博客


 

...全文
543 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,600

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 官方活动专区,欢迎加入
其他 其他
社区管理员
  • 活动助手
  • CSDN学习
  • 我是阿萌
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

试试用AI创作助手写篇文章吧