首页 > 数据库 >MySQL面试题(一)

MySQL面试题(一)

时间:2022-10-05 15:33:08浏览次数:57  
标签:面试题 加锁 存储 CHAR 索引 MySQL 主键

1、MySQL中有哪几种锁?

1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

2、MySQL中有哪些不同的表格?

共有5种类型的表格:

1、MyISAM

2、Heap

3、Merge

4、INNODB

5、ISAM

3、简述在MySQL数据库中MyISAM和InnoDB的区别

MyISAM

不支持事务,但是每次查询都是原子的;

支持表级锁,即每次操作是对整个表加锁;

存储表的总行数;

一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;

采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。

InnoDb

支持ACID的事务,支持事务的四种隔离级别;

支持行级锁及外键约束:因此可以支持写并发;

不存储总行数:

一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为2G),受操作系统文件大小的限制;

主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持B+树结构,文件的大调整。

4、MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?

SQL标准定义的四个隔离级别为:

1、readuncommited:读到未提交数据

2、readcommitted:脏读,不可重复读

3、repeatableread:可重读

4、serializable:串行事物

5、CHAR和VARCHAR的区别?

1、CHAR和VARCHAR类型在存储和检索方面有所不同

2、CHAR列长度固定为创建表时声明的长度,长度值范围是1到255当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。

6、主键和候选键有什么区别?

表格的每一行都由主键唯一标识,一个表只有一个主键。

主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。

7、myisamchk是用来做什么的?

它用来压缩MyISAM表,这减少了磁盘或内存使用。

MyISAMStatic和MyISAMDynamic有什么区别?

在MyISAMStatic上的所有字段有固定宽度。动态MyISAM表将具有像TEXT,BLOB等字段,以适应不同长度的数据类型。

MyISAMStatic在受损情况下更容易恢复。

8、如果一个表有一列定义为TIMESTAMP,将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳。

列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?

它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。

怎样才能找出最后一次插入时分配了哪个自动增量?

LAST_INSERT_ID将返回由Auto_increment分配的最后一个值,并且不需要指定表名称。

9、你怎么看到为表格定义的所有索引?

索引是通过以下方式为表格定义的:SHOWINDEXFROM<tablename>;

10、LIKE声明中的%和_是什么意思?

%对应于0个或更多字符,_只是LIKE语句中的一个字符。

11、如何在Unix和MySQL时间戳之间进行转换?

UNIX_TIMESTAMP是从MySQL时间戳转换为Unix时间戳的命令FROM_UNIXTIME是从Unix时间戳转换为MySQL时间戳的命令


标签:面试题,加锁,存储,CHAR,索引,MySQL,主键
From: https://blog.51cto.com/u_15553407/5732691

相关文章

  • 9.22面试题
    请你说说内存管理?linux操作系统采用段页式内存管理方式页式内存管理方式可以有效的提高内存利用率段式内存管理能反映程序的逻辑结构并有利于段的共享段页式存储管......
  • 手撕前端面试题【javascript~文件扩展名、分隔符、单向绑定、判断版本、深浅拷贝、内
    前端的那些基本标签​​......
  • 2022最新SpringMVC面试题附完整答案
    SpringMVC面试题一、单选题1.下列关于SpringMVC说法正确的是BA.SpringMVC和Spring没有关系B.SpringMVC是一个控制层框架,复制接收和处理请求C.SpringMVC可以脱离Spring单独......
  • 2022最新Spring面试题附完整答案
    Spring面试题一、单选题1.Spring是年发布的(B)A.2022B.2004C.2006D.20082.Spring中的对象的作用域不包括(B)A.sessionB.servletContextC.singletonD.proptotype3.在Spring......
  • [金三银四面试季]Java面向对象高频面试题
      金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。面向对象面试题1.谈谈你对面向对象思想的理解?面向过程......
  • MYSQL学习之视图
    (一)什么是视图??  视图就是站在不同的角度取看待同一份数据。(二)基本操作表复制:mysql>createtabledept2asselect*fromdept;#复制mysql>createtablescholar1assel......
  • 通过JDBC进行简单的增删改查(以MySQL为例)
    目录前言:什么是JDBC一、准备工作(一):MySQL安装配置和基础学习二、准备工作(二):下载数据库对应的jar包并导入三、JDBC基本操作(1)定义记录的类(可选)(2)连接的获取(3)insert(4)upda......
  • MySQL的字段默认null对唯一索引的影响详解
    这篇文章主要为大家介绍了MySQL的字段默认null对唯一索引的影响详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪在日常业务开发中,会经常遇到需......
  • MYSQL学习笔记之索引
    (一)什么是索引??    索引(Index)是在数据库的字段上添加的,是为了提高查询的效率存在的一种机制。一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引。......
  • 【微软面试题】请计算出1的个数
    原题目:给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有"1"的个数。例如:N=2,写下1,2。这样只出现了1个"1"N=12,写下1,2,3,4,5,6,7,8,9,10,11,12。这......