首页 > 数据库 > 数据库三大范式是什么、mysql有哪些索引类型,分别有什么作用、事务的特性和隔离级别

数据库三大范式是什么、mysql有哪些索引类型,分别有什么作用、事务的特性和隔离级别

时间:2023-07-31 20:26:01浏览次数:61  
标签:事务 范式 隔离 索引 mysql 级别 主键 三大

目录

1 数据库三大范式是什么

-https://zhuanlan.zhihu.com/p/618012849

-# 第一范式:1NF 是指数据库表的每一列都是不可分割
	-每列的值具有原子性,不可再分割。
	-每个字段的值都只能是单一值
-# 第二范式(2NF)是在第一范式(1NF)的基础上建立起来得,满足第二范式(2NF)必须先满足第一范式(1NF)
    如果表是单主键,那么主键以外的列必须完全依赖于主键,其它列需要跟主键有关系
    如果表是复合主键,那么主键以外的列必须完全依赖于主键,不能仅依赖主键的一部分。
    
 -# 第三范式(3NF)是在第二范式的基础上建立起来的,即满足第三范式必须要先满足第二范式
    第三范式(3NF)要求:表中的非主键列必须和主键直接相关而不能间接相关;也就是说:非主键列之间不能相关依赖
    不存在传递依赖

2 mysql有哪些索引类型,分别有什么作用

-主键索引(聚簇索引)---》主键,表不建立主键,也会有个隐藏字段是主键,是主键索引,mysql是基于主键索引构建的b+树,如果没有主键,如果按主键搜索,速度是最快的---》一定会有主键索引
-辅助索引(普通索引)-->咱们给某个自己加索引,django  index=True,通过该字段查询,会提高速度,如果字段 变化小(性别,年龄),不要建立普通索引
	-CREATE INDEX index_id ON tb_student(id);
-唯一索引(unique)
	-不是为了提高访问速度,而是为了避免数据出现重复
    -唯一索引通常使用 UNIQUE 关键字
	-CREATE UNIQUE INDEX index_id ON tb_student(id);
	
-组合索引(联合索引)
	-django 中:class Meta:
    -CREATE INDEX index_name
	ON table_name (column1, column2, column3);    			

-全文索引-->基本不用--->
    全文索引主要用来查找文本中的关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。
    在 MySQL 中只有 MyISAM 存储引擎支持全文索引。
    全文索引允许在索引列中插入重复值和空值。
    不过对于大容量的数据表,生成全文索引非常消耗时间和硬盘空间。
    创建全文索引使用 FULLTEXT 关键字

3 事务的特性和隔离级别

-https://www.cnblogs.com/liuqingzheng/p/16480047.html

事务四大特性(ACID)

    原子性(Atomicity):数据库把“要么全做,要么全部做”的这种规则称为原子性
    隔离性(Isolation):事务之间相互隔离,不受影响,这与事务的隔离级别密切相关
        -事务隔离级别
    一致性(Consistency):事务执行前后的状态要一致,可理解为数据一致性
    持久性(Durable):事务完成之后,她对数据的修改是永恒的,即时出现故障也能够正常保持

隔离级别--->为了保证四个特性的隔离性而有的

-Read uncommitted(读未提交)-ru :
     一个事物读到了另一个事务未提交的数据
-Read committed(读已提交)-rc:
     如果设置了这个级别一个事物读不到另一个事务未提交的数据
     -写事务提交之前不允许其他事务的读操作
-Repeatable read(可重复读取)-rr:
    -在开始读取数据(事务开启)时,不再允许修改操作,这样就可以在同一个事务内两次读到的数据是一样的,因此称为是可重复读隔离级别
-Serializable(串行化):
        求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行

标签:事务,范式,隔离,索引,mysql,级别,主键,三大
From: https://www.cnblogs.com/yuezongke/p/17594335.html

相关文章

  • 数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别
    数据库三大范式&mysql的索引类型和作用&事务的特性和隔离级别数据库三大范式第一范式#数据库表的每一列都是不可分割的基本数据-每列的值具有原子性,不可再分割-每个字段的值都只能是单一值举例:学籍信息不符合第一范式,可以继续分割第二范式#在第一范式的基础上-如果......
  • 从源码解读Mysql 5.7性能和数据安全性的提升
    下面我们从源码来分析mysql的事务提交以及事务在何时将binlog复制到从库的。MYSQL_BIN_LOG::ordered_commit,这个是事务在binlog阶段提交的核心函数,通过该函数,实现了事务日志写入binlog文件,以及触发dump线程将binlog发送到slave,在最后的步骤,将事务设置为提交状态。我们来分析MYSQL_B......
  • 数据库三大范式,mysql索引,事务的特性和隔离级别
    1数据库三大范式是什么数据库设计理论中的三大范式是指关系数据库中的规范化原则,目的是减少数据冗余和数据更新异常。第一范式(1NF):第一范式要求关系数据库表的每个属性都是原子性的,即每个属性不能再细分为更小的数据项。它要求将数据划分为最小的单元,避免重复或多值属性。这样......
  • mysql 查看当前正在被锁定的事务和等待锁的事务信息
    SELECTr.trx_idAS'事务ID',r.trx_stateAS'事务状态',r.trx_startedAS'事务开始时间',r.trx_wait_startedAS'等待开始时间',l.lock_tableAS'表',l.lock_indexAS'索引',l.lock_modeAS......
  • MYSQL中JSON类型介绍
    1json对象的介绍在mysql未支持json数据类型时,我们通常使用varchar、blob或text的数据类型存储json字符串,对mysql来说,用户插入的数据只是序列化后的一个普通的字符串,不会对JSON文档本身的语法合法性做检查,文档的合法性需要用户自己保证。在使用时需要先将整个json对象从数据库读......
  • Mysql高级6-视图
    一、视图介绍视图(View):是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自,定义视图时查询使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询的结果。 二、创建视图2.1语法create[orreplace]view视图名称......
  • 【Logstash】conf文件mysql多数据源导入elasticsearch配置说明
    #inputplugin输入插件,接收事件源input{jdbc{#定义类型_1type=>"type_1"#mysql的ip、端口以及用到的数据库名jdbc_connection_string=>"jdbc:mysql://localhost:3306/数据库名"#mysql用户名jd......
  • mysql常见错误
    1.C#在centos7的环境下面连接mysql数据库,报错Authenticationmethod'caching_sha2_password'failed.Eitheruseasecureconnection,specifytheserver'sRSApublickeywithServerRSAPublicKeyFile,orsetAllowPublicKeyRetrieval=True.DbType="MySql"......
  • MySQL DML 闪回之 binlog2sql
    一直以来,由于DBA的误操作或者业务bug,导致误删数据的情况都时有发生。当出现误删数据的情况时,从线上操作日志构造误删除的数据,或者DBA使用binlog和备份的方式恢复数据,不管哪种,都非常费时费力,并且容易出错。可能有的同学会说从从库恢复,但实时主从备份只能防止硬件问题,比如主库的......
  • mysql根据mysqlbinlog恢复找回被删除的数据库
    年初和朋友一起做了个项目,到现在还没收到钱呢,今天中午时候突然听说之前的数据库被攻击了,业务数据库全部被删除。看有没有什么办法恢复,要是恢复不了,肯定也别想拿钱了吧?READMEFORRECOVERYDATAAllyourdatabaseswasbackedup.Youneedtoemailusatxednydy@fexbox......