做业务,要懂基本的SQL语句;
做性能优化,要懂索引,懂引擎;
做分库分表,要懂主从,懂读写分离…
数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多。
今天我们用10分钟,重点梳理一遍以下几方面:
数据库知识点汇总;
数据库事务特性和隔离级别;
详解关系型数据库、索引与锁机制;
数据库调优与最佳实践;
面试考察点及加分项。
知识点汇总
打开百度APP看高清图片
一、数据库的不同类型
1
1.常用的关系型数据库
Oracle:功能强大,主要缺点就是贵
MySQL:互联网行业中最流行的数据库,这不仅仅是因为MySQL的免费。可以说关系数据库场景中你需要的功能,MySQL都能很好的满足,后面详解部分会详细介绍MySQL的一些知识点
MariaDB:是MySQL的分支,由开源社区维护,MariaDB虽然被看作MySQL的替代品,但它在扩展功能、存储引擎上都有非常好的改进
PostgreSQL:也叫PGSQL,PGSQL类似于Oracle的多进程框架,可以支持高并发的应用场景,PG几乎支持所有的SQL标准,支持类型相当丰富。PG更加适合严格的企业应用场景,而MySQL更适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。
2.NoSQL数据库(非关系型数据库)
Redis:提供了持久化能力,支持多种数据类型。Redis适用于数据变化快且数据大小可预测的场景。
MongoDB:一个基于分布式文件存储的数据库,将数据存储为一个文档,数据结构由键值对组成。MongoDB比较适合表结构不明确,且数据结构可能不断变化的场景,不适合有事务和复杂查询的场景。
HBase:建立在HDFS,也就是Hadoop文件系统之上的分布式面向列的数据库。类似于谷歌的大表设计,HBase可以提供快速随机访问海量结构化数据。在表中它由行排序,一个表有多个列族以及每一个列族可以有任意数量的列。
HBase依赖HDFS可以实现海量数据的可靠存储,适用于数据量大,写多读少,不需要复杂查询的场景。
Cassandra:一个高可靠的大规模分布式存储系统。支持分布式的结构化Key-value存储,以高可用性为主要目标。适合写多的场景,适合做一些简单查询,不适合用来做数据分析统计。
Pika:一个可持久化的大容量类Redis存储服务,
兼容五种主要数据结构的大部分命令。Pika使用磁盘存储,主要解决Redis大容量存储的成本问题。
3.NewSQL数据库(新一代关系型数据库)
TiDB:开源的分布式关系数据库,几乎完全兼容MySQL,能够支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性。既适合在线事务处理,也适合在线分析处理。
OceanBase:OceanBase是蚂蚁金服的数据库,OB是可以满足金融级的可靠性和数据一致性要求的数据库系统。当你需要使用事务,并且数据量比较大,就比较适合使用OB。不过目前OB已经商业化,不再开源。
二、事物特性及事物类型
1
后面的详解知识点会展开介绍
三、数据库的范式
1
前关系数据库有六种范式:第一范式、第二范式、第三范式、巴斯-科德范式(BCNF)、第四范式和第五范式。范式级别越高对数据表的要求越严格。
第一范式要求最低,只要求表中字段不可用在拆分。
第二范式在第一范式的基础上要求每条记录由主键唯一区分,记录中所有属性都依赖于主键。
第三范式在第二范式的基础上,要求所有属性必须直接依赖主键,不允许间接依赖。
一般说来,数据库只需满足第三范式就可以了。
详解知识点一&#