MySQL常见面试题与答案

4 篇文章 0 订阅
2 篇文章 0 订阅

一、MySQL的三范式:

1、数据库的每一列都不可再分;

2、确保表中的每一列都和主键相关;

3、确保每列都和主键直接相关,而不是间接相关。

二、数据库的事务:

概念:多条SQL语句,要么全部执行,要么全部不执行。

事务的特性:ACID

原子性、一致性、隔离性、持久性。

三、事务隔离级别:

注:MySQL InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读)。我们可以通过 SELECT @@tx_isolation; 命令来查看。

四、内联接、左外联接、右外联接:

内连接:匹配两张表中相关联的记录;

左外连接:除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记 录,右表中未匹配到的字段用NULL表示。

右外连接:除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记 录,左表中未匹配到的字段用NULL表示。在判定左表和右表时,要根据表名出现在Outer Join 的左右位置关系。

五、MySQL 中一条查询 SQL 是如何执行的:

1、取得链接;2、查询缓存;3、分析器;4、优化器;5.执行器。

六、MySQL 中 varchar 与 char 的区别:

char 是一种固定长度的类型,varchar 则是一种可变长度的类型;对效率要求高用 char,对空间使用要求高用 varchar。

七、 InnoDB 与 MyISAM 有什么区别:

1、MyISAM 不支持行级锁,换句话说,MyISAM 会对整张表加锁,而不是针对行。同时MyISAM 不支持事务和外键。MyISAM 可被压缩,存储空间较小,而且 MyISAM 在筛选大量数据时非快。

2、InnoDB 是事务型引擎,当事务异常提交时,会被回滚。同时,InnoDB 支持行锁。此InnoDB 需要更多存储空间,会在内存中建立其专用的缓冲池用于高速缓冲数据和索引。InnoDB 支持自动奔溃恢复特性。

八、MySQL 索引概念、类型有哪些:

索引:帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

1、主键索引;2、普通索引;3、唯一索引;4、全文索引;5、空间索引;6、前缀索引;

九、索引有什么优缺点:

十、什么时候不要使用索引:

1. 经常增删改的列不要建立索引;

2. 有大量重复的列不建立索引;

3. 表记录太少不要建立索引。

十一、使用 MySQL 的索引应该注意些什么?

十二、SQL优化手段有哪些:

1、查询语句时尽量不用select *;

2、尽量减少子查询,推荐使用关联查询;

3、减少使用in或者not in,使用exist,not exist或者关联查询语句代替;

4、or的查询尽量使用union或者union all代替;

5、应尽量避免在使用where子句中使用!=或者<>操作,否则将导致引擎放弃使用索引而进行全表扫描;

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

十三、MySQL中ifnull的用法:

IFNULL(expr1,expr2)用法:假如expr1不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2。

希望对大家有帮助,有用的大家可以关注点个赞~~~

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值