首页 > 数据库 >MySQL数据库面试题

MySQL数据库面试题

时间:2023-03-30 22:22:47浏览次数:30  
标签:面试题 范式 记录 数据库 statement MySQL 主键 row

数据库三大范式是什么

第一范式:每个列都不可以再拆分。

第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。

MySQL的binlog有有几种录入格式?分别有什么区别?

有三种格式,statement,row和mixed。

  • statement模式下,每一条修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
  • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
  • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。

此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

 

标签:面试题,范式,记录,数据库,statement,MySQL,主键,row
From: https://www.cnblogs.com/xfeiyun/p/17274559.html

相关文章

  • MySQL主键的一些思考
    MySQL创建表的时候可以不设置主键吗?MySQL创建表的时候是可以不主动设置主键的,但是表是一定需要一个主键的,MySQL会主动将第一个不为null的唯一索引设置为主键为什么MySQL推荐使用自增id作为主键?MySQL官方推荐不要使用uuid或者不连续不重复的雪花作为主键,而是使用连续自增的主键id......
  • SequoiaDB分布式数据库2023.3月刊
    本月看点速览赋能行业,参编《分布式数据库金融应用发展报告》脱颖而出,入选2022专精特新黑马大赛年度十强激烈角逐,成功晋级全国信创优秀解决方案决赛新穗新彩,多家权威媒体走进巨杉青杉计划2023持续进行,一起攀登更高的“杉”赋能行业,参编《分布式数据库金融应用发......
  • MySQL
    1.mysql安装连接1.1安装mysql5.71、解压2、把这个包放到自己的电脑环境目录下3、配置环境变量4、新建mysql配置文件ini[mysq1d]#目录一定要换成自己的basedir=D:\Environmentmysq1-5.7.19\datadir=D:\Environment\mysq1-5.7.19\data\port=3306skip-grant-tables5、启......
  • Mysql 事务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制、
    原子性(Atomicity)当前事务的操作要么同时成功,要么同时失败。原子性由undolog日志来实现。一致性(Consistency):使用事务的最终目的,由其它3个特性以及业务代码正确逻辑来实现。隔离性(lsolation):在事务并发执行时,他们内部的操作不能互相干扰,隔离性由MySQL的各种锁以及MVC......
  • pandas写入数据库
    importpandasaspdfromsqlalchemyimportcreate_engineimportnumpyasnpw=np.array([1,2,3])datas=pd.DataFrame(w)print(datas)engine=create_engine("mysql+pymysql://root:1234567890@localhost:3306/studentmemo?charset=utf8")con=engine.c......
  • 实战SQL优化(以MySQL深分页为例)
    1准备表结构CREATETABLE`student`(`id`intNOTNULLAUTO_INCREMENT,`user_no`varchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL,`user_name`varchar(50)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNULLDEFAULTNULL......
  • MySQL常用命令
    常用命令:https://blog.csdn.net/qq_38328378/article/details/80858073最详细的:https://blog.csdn.net/qq_34115899/article/details/81190461......
  • Beego查数据库数据panic问题
    一开始没发现问题所在,请了位大佬帮忙排查错误逐步确定问题所在。问题起源于我查数据库没有得到正确的数据开始。一开始发现是数据类型问题,改过之后还是存在问题,于是debug一下,一步一步看问题出在哪里,结果走进了锁,就没仔细看,哪知在这中间出现了一个panic问题。但是这个panic没有打......
  • MySQL数据库怎么创建表?MySQL数据库基础知识
    MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库......
  • 22、MySQL主从复制详解及配置
    主从复制的介绍MySQL主从复制是指将一个MySQL服务器的数据复制到其他MySQL服务器上的过程。在主从复制中,一个MySQL服务器(称为“主服务器”或“主节点”)充当源,另一个或多个MySQL服务器(称为“从服务器”或“从节点”)充当目标。主服务器将更新和更改记录到二进制日志(binaryl......