2025年数据库增删改查面试题(数据库增删改查语句基础例题)

数据库增删改查面试题(数据库增删改查语句基础例题)1 sql 执行顺序是什么 from 查询范围 join 连表查询 where 查询条件 group by 分组 having 分组条件 select 查询字段 distinct 去重 order by 排序 limit 查询条数 2 MyISAM 和 InnoDB 的区别 InnoDB 支持事务 行锁 聚簇索引 采用数据页存储方式 每个表对应一个表空间

大家好,我是讯享网,很高兴认识大家。



1)sql执行顺序是什么?

from(查询范围)》join(连表查询)》where(查询条件)》group by(分组)》having(分组条件)》select(查询字段)》distinct(去重)》order by (排序)》limit(查询条数)

(2)MyISAM和InnoDB的区别?

InnoDB支持事务、行锁、聚簇索引、采用数据页存储方式(每个表对应一个表空间,存储在data目录下。表名.ibd),实际开发中默认使用InnoDB存储引擎。

双写缓冲区,自适应hash索引和BufferPool一起被称为innodb的三大特性。

MyISAM不支持事务、支持表锁、每个表采用.frm表结构文件 .myd数据文件 .myi索引文件存储。

(3)MySQL中的悲观锁和乐观锁?

MySQL中的乐观锁可以基于版本号实现,在数据表中增加一个版本号字段,更新前查询版本号,在更新时候进行版本号对比。

MySQL悲观锁可通过select for update实现。基于数据库行锁机制。

(4)什么情况下索引会失效?

查询条件使用不等于、左模糊匹配、or、函数计算

查询条件设计到类型转换

组合索引前一个索引使用范围查询

数据表数据量较少时

(5)说下B+树和B-树?

(6)explain执行分析?

explain是一个分析sql执行计划的命令。


讯享网

explain结果参数:select_type参数、type参数(const、eq_ref、ref、range、index、all)、key参数、req参数、select_type参数、extra参数。

type参数含义:const级别标识使用了主键或唯一索引,效率高。

eq_ref级别通常用于联接,每个索引返回对应数据行,使用主键或唯一索引,效率高。

ref级别使用非唯一索引,返回匹配数据行,涉及回表查询。

range级别索引范围扫描,返回匹配数据行,涉及回表查询。

index级别全索引级别查询,使用场景根据非唯一索引排序查询。

all级别全表查询。

extra参数含义:Using index 只需读取索引行数据,无需回表。

Using where 索引检索后还需执行数据筛选,可创建组合索引。

实际开发过程中sql语句至少要优化到range级别。

(7)如何处理慢sql?

首先开启慢sql监控,通过监控查询出慢sql,然后通过explain执行计划分析。

mysql开启慢日志记录:


讯享网

(8)sql优化?

避免在索引列上进行计算、使用函数、不等于、not in

select查询必要的列

where查询频繁的字段建立索引

缩小子查询的结果

from涉及到多个表时,选择数据最少的为基础表

(9)InnoDB通过什么机制来实现事务支持的?

小讯
上一篇 2025-06-08 22:22
下一篇 2025-06-07 13:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/206605.html