返回顶部
首页 > 资讯 > 数据库 > mysql面试题
  • 509
分享到

mysql面试题

mysql面试题 数据库入门数据库基础教程数据库mysql 2021-04-15 18:04:36 509人浏览 猪猪侠
摘要

一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几? 表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。 InnoDB 表只


	mysql面试题
[数据库教程]

一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?

表类型如果是 MyISAM ,那 id 就是 8。
表类型如果是 InnoDB,那 id 就是 6。

InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。
 如何获取当前数据库版本?

使用 select version() 获取当前 Mysql 数据库版本。
 说一下 ACID 是什么?

Atomicity(原子性):一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。
Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。
Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
char 和 varchar 的区别是什么?

char(n) :固定长度类型,比如订阅 char(10),当你输入"abc"三个字符的时候,它们占的空间还是 10 个字节,其他 7 个是空字节。
chat 优点:效率高;缺点:占用空间;适用场景:存储密码的 md5 值,固定长度的,使用 char 非常合适。
varchar(n) :可变长度,存储的值是每个值占用的字节再加上一个用来记录其长度的字节的长度。
所以,从空间上考虑 varcahr 比较合适;从效率上考虑 char 比较合适,二者使用需要权衡。
float 和 double 的区别是什么?

float 最多可以存储 8 位的十进制数,并在内存中占 4 字节。
double 最可可以存储 16 位的十进制数,并在内存中占 8 字节。
mysql 的内连接、左连接、右连接有什么区别?

内连接关键字:inner join;左连接:left join;右连接:right join。

内连接是把匹配的关联数据显示出来;左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;右连接正好相反。
 mysql 索引是怎么实现的?

索引是满足某种特定查找算法数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找数据。

具体来说 mysql 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。
怎么验证 mysql 的索引是否满足需求?

使用 explain 查看 sql 是如何执行查询语句的,从而分析你的索引是否满足需求。

explain 语法:explain select * from table where type=1。
说一下数据库的事务隔离?

MySQL 的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加:transaction-isolation = REPEATABLE-READ

可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。

READ-UNCOMMITTED:未提交读,最低隔离级别、事务未提交前,就可被其他事务读取(会出现幻读、脏读、不可重复读)。
READ-COMMITTED:提交读,一个事务提交后才能被其他事务读取到(会造成幻读、不可重复读)。
REPEATABLE-READ:可重复读,默认级别,保证多次读取同一个数据时,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据(会造成幻读)。
SERIALIZABLE:序列化,代价最高最可靠的隔离级别,该隔离级别能防止脏读、不可重复读、幻读。

脏读 :表示一个事务能够读取另一个事务中还未提交的数据。比如,某个事务尝试插入记录 A,此时该事务还未提交,然后另一个事务尝试读取到了记录 A。

不可重复读 :是指在一个事务内,多次读同一数据。

幻读 :指同一个事务内多次查询返回的结果集不一样。比如同一个事务 A 第一次查询时候有 n 条记录,但是第二次同等条件下查询却有 n+1 条记录,这就好像产生了幻觉。发生幻读的原因也是另外一个事务新增或者删除或者修改了第一个事务结果集里面的数据,同一个记录的数据内容被修改了,所有数据行的记录就变多或者变少了。
 说一下 mysql 常用的引擎?

InnoDB 引擎:InnoDB 引擎提供了对数据库 acid 事务的支持,并且还提供了行级和外键的约束,它的设计的目标就是处理大数据容量的数据库系统。MySQL 运行的时候,InnoDB 会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎是不支持全文搜索,同时启动也比较的慢,它是不会保存表的行数的,所以当进行 select count(*) from table 指令的时候,需要进行扫描全表。由于锁的粒度小,写操作是不会锁定全表的,所以在并发度较高的场景下使用会提升效率的。

MyIASM 引擎:MySQL 的默认引擎,但不提供事务的支持,也不支持行级锁和外键。因此当执行插入和更新语句时,即执行写操作的时候需要锁定这个表,所以会导致效率会降低。不过和 InnoDB 不同的是,MyIASM 引擎是保存了表的行数,于是当进行 select count(*) from table 语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将 MyIASM 作为数据库引擎的首选。
说一下 mysql 的行锁和表锁?

MyISAM 只支持表锁,InnoDB 支持表锁和行锁,默认为行锁。

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。
行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。
说一下乐观锁和悲观锁?

乐观锁:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断一下在此期间别人有没有去更新这个数据。
悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻止,直到这个锁被释放。

数据库的乐观锁需要自己实现,在表里面添加一个 version 字段,每次修改成功值加 1,这样每次修改的时候先对比一下,自己拥有的 version 和数据库现在的 version 是否一致,如果不一致就不修改,这样就实现了乐观锁。
mysql 问题排查都有哪些手段?

使用 show processlist 命令查看当前所有连接信息。
使用 explain 命令查询 SQL 语句执行计划。
开启慢查询日志,查看慢查询的 SQL。
如何做 mysql 的性能优化?

为搜索字段创建索引。
避免使用 select *,列出需要查询的字段。
垂直分割分表。
选择正确的存储引擎。

mysql面试题

原文地址:https://www.cnblogs.com/jingge0723/p/14647161.html

您可能感兴趣的文档:

--结束END--

本文标题: mysql面试题

本文链接: https://lsjlt.com/news/8167.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql面试题
    一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几? 表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。 InnoDB 表只...
    99+
    2021-04-15
    mysql面试题 数据库入门 数据库基础教程 数据库 mysql
  • MySQL 面试题——MySQL 基础
    目录 1.什么是 MySQL?有什么优点?2.MySQL 中的 DDL 与 DML 是分别指什么?3.✨数据类型 varchar 与 char 有什么区别?4.数据类型 BLOB 与 TEXT...
    99+
    2023-09-20
    mysql 数据库 面试题
  • MySQL面试笔试题集-BAT
    01、MySQL技术特点 02、MySQL默认端口号         3306 03、MySQL优势 04、MySQL支持的储存引擎以及特点         MySQL5.7支持:InnoDB、MyISAM、MERGE、MEMOR...
    99+
    2018-09-18
    MySQL面试笔试题集-BAT
  • MySQL面试题-基础
    MySQL面试题-基础 MySQL面试题-基础 1、SQL中文全称 结构化查询语言2、SQL语句分类 (1)数据查询语言DQL包括select字段名from表名where条件 (2)...
    99+
    2021-02-19
    MySQL面试题-基础
  • Java——《面试题——MySQL篇》
    前文 Java——《面试题——基础篇》 Java——《面试题——JVM篇》 Java——《面试题——多线程&并发篇》 Java——《面试题——Spring篇》 Java——《面试题——SpringBoot篇》 Java——《...
    99+
    2023-09-18
    mysql 数据库
  • mysql面试题(最全)
    1. 数据库三大范式是什么? 什么是范式? 范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实...
    99+
    2023-09-25
    mysql 数据库 面试
  • MySQL面试题有哪些
    本篇内容介绍了“MySQL面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!非关系型数据库和关系型...
    99+
    2024-04-02
  • MySQL面试题-索引篇
    目录 1.什么是索引 2.索引常见的数据结构? 3.MySQL有哪些索引? 4.什么是B+树?为什么B+树成为主要的SQL数据库的索引实现? 5.聚簇索引和非聚簇索引? 6.什么是页分裂 7.Mysql为何建议使用自增id作主键  8.什...
    99+
    2023-09-02
    mysql 数据库 java 面试
  • Mysql大厂高频面试题
    前言 前几天有读者找到我,说想要一套全面的Mysql面试题,今天陈某特地为她写了一篇。 文章的目录如下: Mysql面试题 什么是SQL? 结构化查询语言(Structured Query Language)简称SQL,是...
    99+
    2015-10-12
    Mysql大厂高频面试题
  • Mysql经典面试题20道
    我整理的必刷SQL经典题目 SQL语句在工作与面试时都必不可少,下面我整理了20道题目供大家练习,常见的使用方法和开窗函数都有考察,来测测你的sql技能是否过关。 一、创建表 共有4个表,分别是学生信息表、课程表、老师信息表和成绩表。 1 ...
    99+
    2023-08-22
    mysql 面试 数据库
  • 最常见的MySQL面试及笔试题
    不知道大家之前对类似最常见的MySQL面试及笔试题的文章有无了解。今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完最常见的MySQL面试及笔试题你一定会有所收获的。01、MySQL...
    99+
    2024-04-02
  • mysql 面试(六)MySQL 架构类问题
    MySQL 主从复制实现原理 开启二进制日志 步骤一:主库 db 的更新事件 (update、insert、delete) 被写到 binlog 步骤二:从库发起连接,连接到主库 步骤三:此时主库创建一个 binlog du...
    99+
    2020-06-01
    mysql 面试(六)MySQL 架构类问题
  • 【面试】Android面试题集锦
    持续更新… Handler 谈谈消息机制Handler作用 ?有哪些要素 ?流程是怎样的 ? 一个线程能否创建多个Handler,Handler...
    99+
    2022-06-06
    面试 Android
  • php面试常问面试题
    css的定位有哪些方式?以及用法 position 在英文中表示“位置”的意思 它主要是用于实现对元素的定位 在CSS中定位分为三种: position:fixed 固定定位 position:relatvie 相对定位 position:...
    99+
    2023-09-07
    css html css3
  • 数据库笔试面试题库(Oracle、MySQL等)
    数据库笔试面试题库(Oracle、MySQL等)版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作。 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料。 ※※※※※...
    99+
    2024-04-02
  • mysql面试(一)版本类问题
    各个发行版区别及优缺点 MySQL Percona MySQL MariaDB 服务器特性 开源 开源 开源 支持分区表 支持分区表 支持分区表 InnoDB XtraDB XtraDB 企业版监控工具,社...
    99+
    2021-08-14
    mysql面试(一)版本类问题
  • 阿里巴巴MySQL DBA面试题
    1、MySQL的复制原理以及流程 (1)、先问基本原理流程,3个线程以及之间的关联; (2)、再问一致性延时性,数据恢复; (3)、再问各种工作遇到的复制bug的解决方法。 2、MySQ...
    99+
    2024-04-02
  • MySQL基础面试题有哪些
    本篇内容主要讲解“MySQL基础面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL基础面试题有哪些”吧!关系型数据库什么是关系型数据库?关系型...
    99+
    2024-04-02
  • 经典MySQL面试题有哪些
    这篇文章主要讲解了“经典MySQL面试题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“经典MySQL面试题有哪些”吧!1.数据库三范式是什么第一范式(...
    99+
    2024-04-02
  • 有关Mysql面试题有哪些
    本篇内容主要讲解“有关Mysql面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有关Mysql面试题有哪些”吧!1. 数据库的三范式是什么?第一范式:...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作