经典 55道 MySQL面试题及答案

MySQL常见面试题汇总(建议收藏!!!) 目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎 阅读详情

前言

MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面试题以及答案,包含MySQL语言常见面试题、MySQL工程师高级面试题及一些大厂MySQL开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!

这套MySQL面试题大全,希望对大家有帮助哈~

1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?

(1) 如果表的类型是 MyISAM,那么是 18

因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失

(2)如果表的类型是 InnoDB,那么是 15

InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进OPTIMIZE 操作,都会导致最大 ID 丢失

2、Mysql 的技术特点是什么?

Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。

3、Heap 表是什么?

HEAP 表存在于内存中,用于临时高速存储。

BLOB 或 TEXT 字段是不允许的

只能使用比较运算符=,<,>,=>,= <

HEAP 表不支持 AUTO_INCREMENT

索引不可为 NULL

4、Mysql 服务器默认端口是什么?

Mysql 服务器的默认端口是 3306。

5、与 Oracle 相比,Mysql 有什么优势?

Mysql 是开源软件,随时可用,无需付费。

Mysql 是便携式的

带有命令提示符的 GUI。

使用 Mysql 查询浏览器支持管理

6、如何区分 FLOAT 和 DOUBLE?

以下是 FLOAT 和 DOUBLE 的区别:

1)浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。

2)浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。

7、区分 CHAR_LENGTH 和 LENGTH?

CHAR_LENGTH 是字符数,而 LENGTH 是字节数。Latin 字符的这两个数据是相同的,但是对于 Unicode 和其他编码,它们是不同的。

8、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

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

read uncommited :读到未提交数据

read committed:脏读,不可重复读

repeatable read:可重读

serializable :串行事物

9、在 Mysql 中 ENUM 的用法是什么?

ENUM 是一个字符串对象,用于指定一组预定义的值,并在创建表时使用

Create table size(name ENUM('Smail,‘Medium’,‘Large’);

10、如何定义 REGEXP?

REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。

11、CHAR 和 VARCHAR 的区别?

以下是 CHAR 和 VARCHAR 的区别:

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

CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255

当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

12、列的字符串类型可以是什么?

字符串类型是:

SET

BLOB

ENUM

CHAR

TEXT

VARCHAR

13、如何获取当前的 Mysql 版本?

SELECT VERSION();用于获取当前 Mysql 的版本。

14、Mysql 中使用什么存储引擎?

存储引擎称为表类型,数据使用各种技术存储在文件中。

技术涉及:

Storage mechanism

Locking levels

Indexing

Capabilities and functions.

15、Mysql 驱动程序是什么?

以下是 Mysql 中可用的驱动程序:

PHP 驱动程序

JDBC 驱动程序

ODBC 驱动程序

CWRAPPER

PYTHON 驱动程序

PERL 驱动程序

RUBY 驱动程序

CAP11PHP 驱动程序

Ado.net5.mxj

16、TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,UPDATE CURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。

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

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

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

18、如何使用 Unix shell 登录 Mysql?

我们可以通过以下命令登录:

[mysql dir]/bin/mysql -h hostname -u

19、 myisamchk 是用来做什么的?

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

20、MYSQL 数据库服务器性能分析的方法命令有哪些?

https://blog.csdn.net/qq_41455420/article/details/82802090

21、如何控制 HEAP 表的最大尺寸?

Heal 表的大小可通过称为 max_heap_table_size 的 Mysql 配置变量来控制。

22、MyISAM Static 和 MyISAM Dynamic 有什么区别?

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

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

23、federated 表是什么?

federated 表,允许访问位于其他服务器数据库上的表。

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

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

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

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

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

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

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

索引是通过以下方式为表格定义的:SHOW INDEX FROM

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

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

29、如何在 Unix 和 Mysql 时间戳之间进行转换?

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

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

30、列对比运算符是什么?

在 SELECT 语句的列比较中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR 或 LIKE 运算符。

31、我们如何得到受查询影响的行数?

行数可以通过以下代码获得:SELECT COUNT(user_id)FROM users;

32、Mysql 查询是否区分大小写?

不区分

SELECT VERSION(), CURRENT_DATE;

SeLect version(), current_date;

seleCt vErSiOn(), current_DATE;

所有这些例子都是一样的,Mysql 不区分大小写。

33.、LIKE 和 REGEXP 操作有什么区别?

LIKE 和 REGEXP 运算符用于表示^和%。

SELECT * FROM employee WHERE emp_name REGEXP “^b”;

SELECT * FROM employee WHERE emp_name LIKE “%b”;

34.、BLOB 和 TEXT 有什么区别?

1、BLOB 是一个二进制对象,可以容纳可变数量的数据。有四种类型的 BLOB -

1)TINYBLOB

2)BLOB

3)MEDIUMBLOB 和

4)LONGBLOB

它们只能在所能容纳价值的最大长度上有所不同。

2、TEXT 是一个不区分大小写的 BLOB。四种 TEXT 类型

1)TINYTEXT

2)TEXT

3)MEDIUMTEXT

4)LONGTEXT

它们对应于四种 BLOB 类型,并具有相同的最大长度和存储要求。

BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小写,对 TEXT值不区分大小写。

35、mysql_fetch_array 和 mysql_fetch_object 的区别是什么?

1)mysql_fetch_array() - 将结果行作为关联数组或来自数据库的常规数组返回。

2)mysql_fetch_object - 从数据库返回结果行作为对象。

36、我们如何在 mysql 中运行批处理模式?

以下命令用于在批处理模式下运行:

mysql;

mysql mysql.out

37、MyISAM 表格将在哪里存储,并且还提供其存储格式?

每个 MyISAM 表格以三种格式存储在磁盘上:

“.frm”文件存储表定义

数据文件具有“.MYD”(MYData)扩展名

索引文件具有“.MYI”(MYIndex)扩展名

38.、Mysql 中有哪些不同的表格?

共有 5 种类型的表格:

MyISAM

Heap

Merge

INNODB

ISAM

MyISAM 是 Mysql 的默认存储引擎。

39、ISAM 是什么?

ISAM 简称为索引顺序访问方法。它是由 IBM 开发的,用于在磁带等辅助存储系统上存储和检索数据。

40、InnoDB 是什么?

lnnoDB 是一个由 Oracle 公司开发的 Innobase Oy 事务安全存储引擎。

41、Mysql 如何优化 DISTINCT?

DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用。

1

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;

42、如何输入字符为十六进制数字?

如果想输入字符为十六进制数字,可以输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。

如果表达式上下文是字符串,则十六进制数字串将自动转换为字符串。

43、如何显示前 50 行?

在 Mysql 中,使用以下查询显示前 50 行:SELECT*FROMLIMIT 0,50;

44、可以使用多少列创建索引?

任何标准表最多可以创建 16 个索引列。

45、NOW()和 CURRENT_DATE()有什么区别?

NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。

CURRENT_DATE()仅显示当前年份,月份和日期。

46、什么样的对象可以使用 CREATE 语句创建?

以下对象是使用 CREATE 语句创建的:

DATABASE

EVENT

FUNCTION

INDEX

PROCEDURE

TABLE

TRIGGER

USER

VIEW

47、Mysql 表中允许有多少个 TRIGGERS?

在 Mysql 表中允许有六个触发器,如下:

BEFORE INSERT

AFTER INSERT

BEFORE UPDATE

AFTER UPDATE

BEFORE DELETE

AFTER DELETE

48、什么是非标准字符串类型?

以下是非标准字符串类型:

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

49、什么是通用 SQL 函数?

CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。

FORMAT(X, D)- 格式化数字 X 到 D 有效数字。

CURRDATE(), CURRTIME()- 返回当前日期或时间。

NOW() - 将当前日期和时间作为一个值返回。

MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 从日期值中提取给定数据。

HOUR(),MINUTE(),SECOND() - 从时间值中提取给定数据。

DATEDIFF(A,B) - 确定两个日期之间的差异,通常用于计算年龄

SUBTIMES(A,B) - 确定两次之间的差异。

FROMDAYS(INT) - 将整数天数转换为日期值。

50、解释访问控制列表

ACL(访问控制列表)是与对象关联的权限列表。这个列表是 Mysql 服务器安全模型的基础,它有助于排除用户无法连接的问题。

Mysql 将 ACL(也称为授权表)缓存在内存中。当用户尝试认证或运行命令时,Mysql 会按照预定的顺序检查 ACL 的认证信息和权限。

51、MYSQL 支持事务吗?

在缺省模式下,MYSQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql 是不支持事务的。

但是如果你的 MYSQL 表类型是使用 InnoDB Tables 或 BDB tables 的话,你的 MYSQL 就可以使用事务处理,使用 SET AUTOCOMMIT=0 就可以使 MYSQL 允许在非 autocommit 模式,在非autocommit 模式下,你必须使用 COMMIT 来提交你的更改,或者用 ROLLBACK 来回滚你的更改。

示例如下:

START TRANSACTION;

SELECT @A:=SUM(salary) FROM table1 WHERE type=1;

UPDATE table2 SET summmary=@A WHERE type=1;

COMMIT;

52、mysql 里记录货币用什么字段类型好

NUMERIC 和 DECIMAL 类型被 Mysql 实现为同样的类型,这在 SQL92 标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定;

例如:

salary DECIMAL(9,2)

在这个例子中,9(precision)代表将被用于存储值的总的小数位数,而 2(scale)代表将被用于存储小数点后的位数。

因此,在这种情况下,能被存储在 salary 列中的值的范围是从-9999999.99 到 9999999.99。

在 ANSI/ISO SQL92 中,句法 DECIMAL§等价于 DECIMAL(p,0)。

同样,句法 DECIMAL 等价于 DECIMAL(p,0),这里实现被允许决定值 p。Mysql 当前不支持DECIMAL/NUMERIC 数据类型的这些变种形式的任一种。

这一般说来不是一个严重的问题,因为这些类型的主要益处得自于明显地控制精度和规模的能力。

DECIMAL 和 NUMERIC 值作为字符串存储,而不是作为二进制浮点数,以便保存那些值的小数精度。

一个字符用于值的每一位、小数点(如果 scale>0)和“-”符号(对于负值)。如果 scale 是 0,DECIMAL 和 NUMERIC 值不包含小数点或小数部分。

DECIMAL 和 NUMERIC 值得最大的范围与 DOUBLE 一样,但是对于一个给定的 DECIMAL 或NUMERIC 列,实际的范围可由制由给定列的 precision 或 scale 限制。

当这样的列赋给了小数点后面的位超过指定 scale 所允许的位的值,该值根据 scale 四舍五入。

当一个 DECIMAL 或 NUMERIC 列被赋给了其大小超过指定(或缺省的)precision 和 scale 隐含的范围的值,Mysql 存储表示那个范围的相应的端点值。

53、MYSQL 数据表在什么情况下容易损坏?

服务器突然断电导致数据文件损坏。

强制关机,没有先关闭 mysql 服务等。

54、mysql 有关权限的表都有哪几个?

Mysql 服务器通过权限表来控制用户对数据库的访问,权限表存放在 mysql 数据库里,由mysql_install_db 脚本初始化。

这些权限表分别 user,db,table_priv,columns_priv 和host。

55、Mysql 中有哪几种锁?

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

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

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高

如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,

咱们下期见!

mysql高频面试题合集 1.请你谈谈 MySQL 事务隔离级别,MySQL 的默认隔离级别是什么?p25 为了达到事务的四大特性,数据库定义了 4 种不同的事务隔离级别: READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许脏读,也就是可能读取 到其他会话中未提交事务修改的数据,可能会导致脏读、幻读或不可重复读。  READ-COMMITTED(读取已提交): 只能读取到已经提交的数据。Oracle 等多数数 据库默认都是该级别 (不重复读),可以阻止脏读,但是幻读或不可重复读仍有可能发 生。  REPEAT 阅读详情

相关推荐

2021年MySQL面试题55

文章目录前言面试题系列文章传送门MySQL面试题内容1. 简述在MySQL数据库中引擎MyISAM和InnoDB的区别?2. MySQL中有哪几种锁?3. 什么是通用SQL函数?4. MySQL中有哪些不同的表格?5. CHAR和VARCHAR的区别?6. MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?7. myisamchk是用来做什么的?8. 主键和候选键有什么区别?9. 如果一个表有一列定义为TIMESTAMP,将发生什么?10. 列设置为AUTO INCREMENT时,如

码农阿斌的博客 2万+

MySQL 高频面试题

一、一条SQL查询语句是如何执行的? (1)客户端与数据库建立连接 (2)查询缓存,如果命中缓存,则立即返回存储在缓存中的数据。 (3)解析器先进行词法分析,将SQL语句打碎成一个个单词,根据构词规则识别单词中的关键字和非关键字,接着进行语法解析,判断是否满足MySQL的语句,接着生成语法树。如果语法错误则返回 (4)解释器是分析语法有没有错误,但是它无法知数据库中有没有数据表和字段,预处理器根据MySQL规则进一步检查解析树是否合法。如检查表名,列名是否正确,是否有表权限等。 (5)查询优化器对解析

qq_43170213的博客 1391

最新50万字312Java经典面试题52场景题总结(附答案PDF)

最近有很多粉丝问我,有什么方法能够快速提升自己,通过阿里、腾讯、字节跳动、京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题;花了3个月的时间将市面上所有的面试题整理总结成了一份50万字的300Java高频面试题64场景题,分享给大家,希望大家都能拿到心仪的offer!

weixin_46781683的博客 3071

115 MySQL 面试题,从简单到深入!

最新115MySQL面试题,会持续更新

码农小郑有话说的博客 2万+

MySQL面试题(66)】

MySQL数据库基础知识问答,包含内外连接区别、表删除的区别、SQL语句执行流程等;数据库架构设计,采用哪些存储引擎、有何区别,MySQL日志有哪些、有何作用,SQL优化方式,索引的分类、适用场景、采用的数据结构、B+树有何优点,数据库锁有哪些、行锁的实现,事务的特性、如何保证ACID、隔离级别、脏读、幻读等,数据库读写分离的实现、主从复制原理、分表方法等,百万级大数据的删除与添加解决方法。

独上高楼,望尽天涯路。 4万+

史上最全 55 MySQL面试题答案,看完碾压面试

MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典MySQL程序员面试题以及答案,包含MySQL语言常见面试题MySQL工程师高级面试题及一些大厂MySQL开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!这套MySQL面试题大全,希望对大家有帮助哈~REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。每当行被更改时,时间戳字段将获取当前时间戳。

qq_39173779的博客 6937

Mysql面试题55答案

一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?如果表的类型是 MyISAM,那么是 18因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失。如果表的类型是 InnoDB,那么是 15,InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行OPTIMIZE 操

鑫阳的博客 1008

2025Java面试题经典面试题220(附答案

177. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?164. kafka 同时设置了 7天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?3. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?47. 线程池中 submit() 和 execute() 方法有什么区别?29. 在 Queue 中 poll()和 remove()有什么区别?

geinvse_seg的博客 1947

2019史上最全java面试题题库大全800题含答案

2019史上最全java面试题题库大全_辟邪剑谱葵花宝典800题含答案 1、 meta标签的作用是什么 2、 ReenTrantLock可重入锁(和synchronized的区别)总结 3、 Spring中的自动装配有哪些限制? 4、 什么是可变参数? 5、 什么是领域模型(domain model)?贫血模型(anaemic domain model)和充血模型(rich domain mode...

weixin_44626952的博客 5万+

55 MySQL面试题答案

前言MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典MySQL程序员面试题以及答案,包含MySQL语言常见面试题MySQL工程师高级面试题及一些大厂MySQL开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!这套MySQL面试题大全,希望对大家有帮助哈~ 1、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录

hahazz233的博客 491

100mysql面试题答案_2025

100mysql面试题 1. MySQL 索引使用有哪些注意事项呢? 索引哪些情况会失效 索引不适合哪些场景 索引的一些潜规则 2. MySQL 遇到过死锁问题吗,你是如何解决的? 3. 日常工作中你是怎么优化SQL的? 4. 说说分库与分表的设计 分库分表方案: 常用的分库分表中间件: 分库分表可能遇到的问题 5. InnoDB与MyISAM的区别 6. 数据库索引的原理,为什么要用 B+树,为什么不用二叉树? 为什么不是一般二叉树? 为什么不是平衡二叉树呢? 那为什么不是B树而是B+树呢?

weixin_43474701的博客 1809

MySQL精选60面试题 ( 含答案 )

1、关系型和的区别?2、详细说一下一条 MySQL 语句执行的步骤。

OKCRW的博客 1020

mysql面试题(最全)

整理的最全的 mysql 面试题

QRLYLETITBE的博客 1万+

MySQL 精选 60 面试题(含答案

基础关系型数据库的优点非关系型数据库(NOSQL)的优点Server 层按顺序执行 SQL 的步骤为:根本原因扩展三种常见的索引底层数据结构:分别是哈希表、有序数组和搜索树。根据叶子节点的内容,索引类型分为主键索引和非主键索引。两个考虑因素:为什么选择 B+ 树:覆盖索引:索引下推:- 反过来,假设一个业务的更新模式是写入之后马上会做查询,那么即使满足了条件,将更新先记录在 change buffer,但之后由于马上要访问这个数据页,会立即触发 merge 过程。这样随机访问 IO 的次数不会减少,反而增加

hahazz233的博客 14万+

MySQL 常见面试问题总结

MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现在属于Oracle公司。✅ 开源免费(社区版)⚡ 性能高、运行速度快👥 支持多用户、多线程🖥️ 跨平台支持(Windows、Linux、Mac等)💻 支持多种编程语言接口📊 使用标准的SQL数据语言🔄 提供事务支持和外键约束🏢 支持大型数据库🛠️ 提供多种存储引擎选择🔒 良好的安全性和连接性事务定义事务是一组原子性的SQL查询,要么全部执行成功,要么全部失败回滚。

weixin_52242569的博客 8064

115MySQL面试题(含答案),从简单到深入!

数据库事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这意味着事务内的操作要么全部成功,要么全部失败,保持数据完整性,并且独立于其他事务运行。索引是数据库对象,可以提高数据检索的速度。它类似于书的目录,使数据库能够快速定位并检索数据,而不必扫描整个表。索引尤其在处理大量数据时显著提高查询性能。视图是基于SQL语句的结果集的可视化表现。

m0_67912929的博客 1万+

MySQL最常问的10面试题(2023详解版)

1.什么是聚集索引和非聚集索引简单来说,聚集索引就是基于主键创建的索引,除了主键索引以外的其他索引,称为非聚集索引,也叫做二级索引。由于在InnoDB引擎里面,一张表的数据对应的物理文件本身就是按照B+树来组织的一种索引结构,而聚集索引就是按照每张表的主键来构建一颗B+树,然后叶子节点里面存储了这个表的每一行数据记录。所以基于InnoDB这样的特性,聚集索引并不仅仅是一种索引类型,还代表着一种数据的存储方式。

weixin_46781683的博客 2万+

Mysql必会面试题(第一篇)

Mysql中的连接是通过两个或多个表之间的列进行关联,从而获取相关联的数据。内连接(inner join):返回两个表中连接字段匹配的行。如果一个表中的行在另一个表中没有匹配的行,则这些行不会出现在查询结果中。假设有两个表,Employees 和 Departments。2.外连接(outer join):不仅返回两个表中匹配的行,还返回左表、右表或两者中未匹配的行。这个查询将返回所有员工的名字和他们部门的名字,即使某些员工没有分配到部门。

xiaoye7288的博客 4744
上一篇: 程序猿代码面试指南 PDF
下一篇: 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)
Firstlucky77
博客等级 码龄4年 72粉丝 158原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值