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

在大家学习java的时候,数据库方面的知识是必须要学会的,因为在实际实操中经常会遇到,并且去面试java也是必考,那今天我们就给大家分享一些数据库优化方面的面试题。

1、说说对SQL语句优化有哪些方法?(选择几条)

(1)Where子句中:where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在Where子句的末尾.HAVING最后。

(2)用EXISTS替代IN、用NOT EXISTS替代NOT IN。

(3) 避免在索引列上使用计算。

(4)避免在索引列上使用IS NULL和IS NOT NULL。

(5)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

(6)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。

(7)应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。

2、MySQL如何优化DISTINCT?

DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;

3、key和index的区别是什么?

key是数据库的物理结构,它包含两层意义和作用,一是约束(偏 重于约束和规范数据库的结构完整性) ,二是索引(辅助查询 用的)。包括primary key, unique key, foreign key等。

index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的innodb表空间) 以-个类似目录的结 构存储。索引要分类的话,分为前缀索引、全文本索引等;

4、Mysql 中MyISAM和InnoDB的区别有哪些?

InnoDB支持事务, MyISAM不支持;

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

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

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

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

这些相关面试题大家可以收藏起来,必要的时候拿出来看看,说不定面试还能考到原题哦!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。

推荐阅读:

javabean包括的组件有哪些?简述javabean包括的组件

java泛型方法怎么用?用泛型有什么意义?

java编程基础课程有哪些?初学者怎么学java?