032--MySQL面试题汇总

VIP免费
2024-12-11 2 0 134.8KB 12 页 5.9玖币
侵权投诉
MySQL 面试题汇总
1.说一下 MySQL 执行一条查询语句的内部执行过程?
答:MySQL 执行一条查询的流程如下:
客户端先通过连接器连接到 MySQL 服务器;
连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语
句)则直接返回缓存数据,如果没有缓存则进入分析器;
分析器会对查询语句进行语法分析和词法分析,判断 SQL 语法是否正确,如果查询
语法错误会直接返回给客户端错误信息,如果语法正确则进入优化器;
优化器是对查询语句进行优化处理,例如一个表里面有多个索引,优化器会判别哪个
索引性能更好;
优化器执行完就进入执行器,执行器则开始执行语句进行查询比对了,直到查询到满
足条件的所有数据,然后进行返回。
2.MySQL 查询缓存有什么优缺点?
答:MySQL 查询缓存功能是在连接器之后发生的,它的优点是效率高,如果已经有缓存
则会直接返回结果。
查询缓存的缺点是失效太频繁导致缓存命中率比较低,任何更新表操作都会清空查询缓
存,因此导致查询缓存非常容易失效。
3.MySQL 的常用引擎都有哪些?
答:MySQL 的常用引擎有 InnoDBMyISAMMemory 等,从 MySQL 5.5.5 版本开始
InnoDB 就成为了默认的存储引擎。
4.常用的存储引擎 InnoDB MyISAM 有什么区别?
答:InnoDB MyISAM 最大的区别是 InnoDB 支持事务,而 MyISAM 不支持事务,它们
其他主要区别如下:
InnoDB 支持崩溃后安全恢复,MyISAM 不支持崩溃后安全恢复;
InnoDB 支持行级锁,MyISAM 不支持行级锁,只支持到表锁;
InnoDB 支持外键,MyISAM 不支持外键;
MyISAM 性能比 InnoDB 高;
MyISAM 支持 FULLTEXT 类型的全文索引,InnoDB 不支持 FULLTEXT 类型的全文索
引,但是 InnoDB 可以使用 sphinx 插件支持全文索引,并且效果更好;
InnoDB 主键查询性能高于 MyISAM
5.什么叫回表查询?
答:普通索引查询到主键索引后,回到主键索引树搜索的过程,我们称为回表查询。
6.如果把一个 InnoDB 表的主键删掉,是不是就没有主键,就没办法进行回表查询了?
答:不是,如果把主键删掉了,那么 InnoDB 会自己生成一个长度为 6 字节的 rowid 作为
主键。
7.一张自增表中有三条数据,删除两条数据之后重启数据库,再新增一条数据,此时这条
数据的 ID 是几?
答:如果这张表的引擎是 MyISAM ,那么 ID=4 ,如果是 InnoDB 那么 ID=2MySQL 8
前的版本)。
8.什么是独立表空间和共享表空间?它们的区别是什么?
答:共享表空间指的是数据库的所有表数据,索引文件全部放在一个文件中,默认这个共
享表空间的文件路径在 data 目录下。
独立表空间:每一个表都将会生成以独立的文件方式来进行存储。
共享表空间和独立表空间最大的区别是如果把表放再共享表空间,即使表删除了空间也不
会删除,因此表依然很大,而独立表空间如果删除表就会清除空间。
9.清空表的所有数据性能最好的语句是?
Adelete from t
Bdelete t
Cdrop table t
Dtruncate table t
答:D
题目解析:truncate 清除表数据不会写日志,delete 要写日志,因此 truncate 的效率要高
delete
10.唯一索引和普通索引哪个性能更好?
答:唯一索引和普通索引的性能对比分为以下两种情况:
对于查询来说两者都是从索引树进行查询,性能几乎没有任何区别;
对于更新操作来说,因为唯一索引需要先将数据读取到内存,然后需要判断是否有
,因此比唯一索引要多了判断操作,从而性能就比普通索引性能要低。
11.le join right join 的区别是什么?
答:left join right join 的区别如下:
left join左联结),返回表全部录和结字段相等的录;
right join右联结),返回表全部录和结字段相等的录。
12.什么是最左匹配原则?它的生效则有哪些?
答:最左匹配原则也叫最缀原则,是 MySQL 中的一个重要则,指的是索引以最
点任何连的索引都能匹配上当遇范围查询(><betweenlike)就会
止匹配。 生效则来以下例,比如表中有一个联合索引字index(a,b,c)
where a=1 只使用了索引 a
where a=1 and b=2 只使用了索引 a,b
where a=1 and b=2 and c=3 使用 a,b,c
where b=1 or where c=1 不使用索引;
where a=1 and c=3 只使用了索引 a
where a=3 and b like ‘xx%’ and c=3 只使用了索引 a,b
13.以下 or 查询有什么如何优化?
select * from t where num=10 or num=20;
答:如果使用 or 查询会使 MySQL 索引而全表扫描,可以为:
select * from t where num=10
union
select * from t where num=20;
14.事务是什么?它有什么性?
答:事务是一系列的数据库操作,是数据库用的单位
MySQL 中只有 InnoDB 引擎支持事务,它的性如下:
原子性(Atomic),要么全部执行,要么全部不执行;
一致性(Consistency),事务的执行使数据库从一种正确状态转化为一种正确
状态
隔离性(Isolation),在事务正确提交之前,不允许事务对数据的任何改变提供
给其他事务;
性(Durability),事务提交后,其结果永久保存在数据库中。
15.MySQL 中有几种事务隔离级别?分别是什么?
答:MySQL 中有种事务隔离级别,分别是:
read uncommited未提交读未提交数据;
read committed提交,也叫不可重复,两次读取到的数据不一致;
repetable read,可重复
• serializable行化,写数据都会锁住整张表,数据操作不会错,但并发性能
低,开发中很用到。
MySQL 默认使用 repetable read 的事务隔离级别。
摘要:

MySQL面试题汇总1.说一下MySQL执行一条查询语句的内部执行过程?答:MySQL执行一条查询的流程如下:•客户端先通过连接器连接到MySQL服务器;•连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语句)则直接返回缓存数据,如果没有缓存则进入分析器;•分析器会对查询语句进行语法分析和词法分析,判断SQL语法是否正确,如果查询语法错误会直接返回给客户端错误信息,如果语法正确则进入优化器;•优化器是对查询语句进行优化处理,例如一个表里面有多个索引,优化器会判别哪个索引性能更好;•优化器执行完就进入执行器,执行器则开始执行语句进行查询比对了,直到查询到满足条件的所有数据,...

展开>> 收起<<
032--MySQL面试题汇总.docx

共12页,预览3页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:12 页 大小:134.8KB 格式:DOCX 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 12
客服
关注