当前位置:网站首页 > 数据科学与大数据 > 正文

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



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通过什么机制来实现事务支持的?

到此这篇数据库增删改查面试题(数据库增删改查语句基础例题)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • st7735r数据(st7703ic资料)2025-06-13 19:09:10
  • 大数据学习路线(大数据自学路线)2025-06-13 19:09:10
  • orecal数据库一汉字等于多少字符(oracle数据库一个汉字占几个字符)2025-06-13 19:09:10
  • 数据库基本语句增删改查(数据库增删改查基本语句举例)2025-06-13 19:09:10
  • 创建数据库db1(创建数据库dbtest)2025-06-13 19:09:10
  • 数据库增删改查功能称为(数据库增删改查怎么实现的)2025-06-13 19:09:10
  • druid数据库连接池配置(druid数据库连接池配置默认值)2025-06-13 19:09:10
  • 小米手机数据如何导入vivo手机(怎么从小米手机导入vivo手机)2025-06-13 19:09:10
  • pymysql查询出来的数据格式(pymysql获取字段和数据)2025-06-13 19:09:10
  • 小米手机数据迁移到真我(小米手机转移数据到小米手机)2025-06-13 19:09:10
  • 全屏图片