数据库基础名词

拜拜、爱过 提交于 2020-01-28 02:03:48

写在正文前:内容涉及到一些数据库的基础名词和及其简单介绍

存储引擎
数据库通过存储引擎进行CURD,存储引擎主要有:MyLsam,InnoDB,Memary,Archive,Federated

索引
索引是对数据库种一列或者多列的值进行排序的一种结构。
常见的索引原则:
1.为经常需要排序、分组、联合操作的字段建立索引。
2.为经常需要查询的字段建立索引。
3.限制索引的数目(索引太多,写操作速度降低)
4.尽量使用数据量少的索引
5.索引字段值较长的时候,最好使用值的前缀来索引。
6.最左前缀匹配原则
7.尽量选择区分度高的列作为索引
8.索引列不要参与计算

数据库三范式
第一范式的目的是确保每列的原子性
第二范式每个表只描述一件事情
第三范式是满足第二范式,并且表中的列不存在对非主键列的传递依赖。

数据库ACID
原子性:事务各部分是一个完整的操作,要么全部执行、要么全部不执行。
一致性:当事务处理完成之后,数据必须是一致的。
隔离性:对数据修改的所有并发事务是彼此隔离的,事务必须是独立的,不影响或者依赖其他事务。
永久性:事务完成之后,数据被永久保存。事务日志能够保证事务的一致性。

存储过程
一组为了完成特定功能的sql语句集,存储在数据库中,编译之后再次调用不需要编译,只要指定名称和传入参数(如果有参数)就可调用。

触发器
触发器是一段能自动执行的程序,是特殊的存储过程。

数据库并发策略
乐观锁:认为查询的时候别人不会修改查询的数据
悲观锁:查询的时候别人会修改查询的数据,查询和修改都要先加锁。
时间戳:不叫锁,使用时间戳。

数据库锁
行级锁、表级锁、页锁

分区分表
垂直切分和水平切分
垂直切分:按照模块或者关系密切程度划分出不同的表放在不同的数据库。
水平切分:当一个表中的数据量太大时,按照某种规则把数据放在结构相同的不同的数据库表和库中。

分布式事务和分布式锁
后期单独介绍

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!