数据库优化面试题有哪些?数据库优化面试题及答案

数据库相关知识点一直是java中最重要的,并且在面试过程中,也少不了对这方面的考核,为了能够让大家顺利通过java面试,我们给大家分享一些关于数据库优化面试题!希望给大家提供帮助!

1.为什么使用数据索引能提高效率?

数据索引的存储是 有序的;

在有序的情况下, 通过索引查询一个数据是无需遍历索引记录的;

极端情况下,数据索引的查询效率为二分法查询效率,趋近于log2(N);

2.Mysql 中MyISAM和InnoDB的区别有哪些?

InnoDB支持事务, MyISAM不支持;

InnoDB支持外键,而MylSAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;

InnoDB是聚集索引,数据文件是和索引绑在一起,必须要有主键,通过主键索引效率高。

InnoDB不保存 表的具体行数,执行select count(*) from table时需要全表扫描。

Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高;

3. 数据库三范式是什么?

第一范式: 列不可再分;

第二范式: 行可以唯一区分, 主键约束;

第三范式: 表的非主属性不能依赖其他表的非主属性外键约束;

4. MySQL集群的优缺点有哪些?

优点:

1)99.999%的高可用性;

2)快速的自动失效切换;

3)灵活的分布式休系结构,没有单点故障;

4)高吞吐量和低延迟 e)可扩展性强,支持在线扩容;

缺点:

1)存在很多限制,比如:不支持外键;

2)部署、管理、配置很复杂;

3)占用磁盘空间大,内存人;

4)备份和恢复不方便;

5)重启的时候,数据节点将数据load到内存需要很长时间;

5.数据表损坏的修复方式有哪些?

使用 myisamchk 来修复,具体步骤:

1)修复前将mysql服务停止。

2)打开命令行方式,然后进入到mysql的/bin目录。

3)执行myisamchk –recover 数据库所在路径/*.MYI

使用repair table 或者 OPTIMIZE table命令来修复,REPAIR TABLE table_name 修复表 OPTIMIZE TABLE table_name 优化表 REPAIR TABLE 用于修复被破坏的表。OPTIMIZE TABLE 用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZE TABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库)。

这些都是在面试中经常出现的面试题,大家可以讲这些收藏起来,并看看这些题目都会不会?如果不会,那就要赶紧复习咯!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

java面试题有哪些?java面试试题及答案

java调用方法返回值怎么操作?返回值有作用吗?

java如何写入文本文件?java写入文本方法