每日进步一点点系列七道精选 数据库 实习面试题
前言
最近又到了找实习热门时间,每天坚持更新Java
实习岗位相关的面试题,不仅是自己学习总结,也为了帮助大家一起准备,每天进步一点点,坚持不懈,水滴石穿,一起拿下offer
。
1.InnoDB和MyISAM的区别
InnoDB
是具有事务、回滚和崩溃修复能力的事务安全型引擎,它可以实现行级锁来保证高性能的大量数据中的并发操作;
MyISAM
是具有默认支持全文索引、压缩功能及较高查询性能的非事务性引擎。
InnoDB
是MySQL5.5之后的默认引擎, 行锁是通过给索引上加锁来实现的,只有通过索引条件检索数据,innoDB
才使用行锁,否则,使用表锁。
从以下四个角度对比:
- 1.事务:
InnoDB
支持事务,MyISAM
不支持 - 2.数据锁:
InnoDB
支持行级锁,MyISAM
支持表级锁 - 3.读写性能:
InnoDB
增删改性能更优,MyISAM
查询性能更优。 - 4.全文索引:
InnoDB
不支持(但可通过插件等方式支持);MyISAM
默认支持。 - 5.外键:
InnoDB
支持外键,MyISAM
不支持。
2.数据库的索引是什么结构,为什么不用哈希表?
Mysql
的索引由B
树实现, 哈希表的查询效率的确最高,时间复杂度 O ( 1 ) O(1) O(1),但是它要求将所有数据载入内存,而数据库存储的数据量级可能会非常大,全部载入内存基本上是不可能实现的; B
树可以分段加载需要的节点数据,可以在内存资源有限的前提下,极大提高查询效率。
3.聚簇索引和非聚簇索引
两者主要区别是数据和索引是否分离。聚簇索引是将数据与索引存储到一起,找到索引也就找到了数据;而非聚簇索引是将数据和索引存储分离开,索引树的叶子节点存储了数据行的地址。
聚簇索引:索引结果和数据一起存放的索引。 优点:聚簇索引的查询速度非常快,因为聚簇索引本身就是一个B 树,数据节点属于有序的,当定位到索引上的时候就相当于找到了数据。 缺点:更新的时候代价大,依赖有序的数据
非聚簇索引:索引结构和数据分开存放的索引。 优点:更新代价比聚簇索引小 缺点:依赖有序的数据,可能会二次回表查找
4.索引怎么实现的B 树,为什么选这个数据结构?
- 索引的本质就是通过预排序 树型结构来加快检索效率,而MySQL中使用InnoDB和MyISAM引擎时都使用了B 树实现索引。
- 在二叉查找树上查找一个数据时,当出现海量数据时,查找效率将大大折扣,B 树是一棵平衡多路查找树,可以有效减少磁盘IO,同时B 树增加了叶子结点之间的连接,能保证范围查找时找到起点和终点后能快速取出需要的数据。
5.MySql 的主从同步是如何实现的?
复制(replication)是MySQL数据库提供的一种高可用高性能的解决方案,一般用来建立大型的应用。总体来说,replication的工作原理分为以下3个步骤:
- 主服务器(master)把数据更改记录到二进制日志(binlog)中。
- 从服务器(slave)把主服务器的二进制日志复制到自己的中继日志(relay log)中。
- 从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性。
6.Mysql 什么时候会进行全局扫描
全表扫描,就是一条一条记录的遍历,直到表中的最后一条记录。通常情况下,对没有建立索引的表查询都是全表扫描。
但是有时候表中即使有索引,如果使用不当,也会造成全表扫描。
- 1.条件中使用了
null
- 2.使用
or
作为连接条件 - 3.使用了
not in
或者in
- 4.使用模糊查询
- 5.使用了
!=
或者<>
时 - 6.使用
count(*)
时 - 7.使用参数作为条件时
7.索引的优化
为了优化索引,我们应该合理的创建索引,比如以下情况的列适合创建索引:
- 1.经常被查询的列
- 2.经常用于表连接的列
- 3.经常排序分组的列
以及创建索引时的四个不要:
- 1.选择性低的字段不创建索引(比如性别、状态等)
- 2.很少查询的列不要创建索引
- 3.大数据类型的字段不要创建索引
- 4.尽量不要使用
NULL
值
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfijbbb
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13