mysql经典面试题

本文介绍了数据库的三范式,详细对比了InnoDB与MyISAM的区别,包括事务支持、外键和索引类型。同时,讨论了MySQL中的数据引擎,如MyISAM和InnoDB的适用场景。此外,还探讨了数据库事务的特性以及SQL优化技巧,如避免使用OR、全表扫描等。最后,阐述了DROP、DELETE和TRUNCATE命令的不同之处。
摘要由CSDN通过智能技术生成

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

        第一范式,每张数据表必须要有主键,并且列不可再分。

        第二范式:第一范式基础上,所有的非主键字段必须完全依赖主键,不能出现部分依赖。表中只能存在一个业务主键,用来标识唯一一条记录,并且这张表中的所有属性完全依赖该业务主键。适用于多对多关系。

        第三范式:第二范式的基础上,所有的非主键属性直接依赖主键,不能出现传递依赖。就是任何字段不能由其他字段派生出来。适用于一对多关系,例如如果出现部门表,那么员工表中就只能存在部门表的主键id。如果没有部门表,那么就需要创建出来。

2.mysq的数据引擎都有什么?

mysql中的常用的数据引擎包括MyIsam,InnoDB,memory等等。

MyIsam不支持外键,不支持事务,并发性比较差。全表锁。

Innodb行锁,支持事务,比较安全。并发性强。支持外键约束。

Memory全表锁,存储在内存中,优点是非常快,缺点是一断电数据就会消失。

3.详细说明InnoDB和MyISAM的区别?

从以下四个方面说明:

        1.InnoDB支持事务,MyISAM不支持。InnoDB中每一条sql语句都默认封装成事务。自动提交。

        2.InnoDB支持外键,MyISAM不支持。如果需要转换的时候,要小心存在外键的表会出现失败情况。

        3.InnoDB是聚集索引,数据文件和索引绑到一起的,必须要有主键,使用主键索引效率比较高。MyISAM是非聚集索引,数据文件是分离的的,索引保存的是数据文件的指针。

        4.InnoDB不支持全文索引,而MyISAM是支持全文索引的。查询效率上MyISAM比较高。、

4.什么是数据库的事务?

        事务:多条sql语句要么全部成功,要么全部失败。

事务的特性:原子性,一致性,隔离性,持久性。

        原子性:   所有的sql语句作为一个原子单元执行。所有的sql语句全部执行成功,整个事务才可以提交。

         一致性:事务操作之后,所有的数据状态是一致的,数据不会被破坏。

         隔离性:在并发数据操作的时候,不同事物之间有独立的数据空间,不会相互影响。

        持久性:一旦事务提交成功,事务中的所有操作都必须持久化到数据库中。

5.什么是索引?

        索引是帮助我们高效获取数据的一种数据结构,类似于一本书的目录,根据索引我们可以快速的定位到具体的某一条记录的存在的范围。

        我们通常说的索引包括聚集索引,唯一索引,复合索引,没有特别说明,默认都是B+树。

6.常用的sql优化手段都有什么?

1.小表驱动大表

2.查询的时候尽量不要查询select * ,

3.减少子查询,使用关联查询。

4.尽量不要使用or,使用union或者union all

5.尽量避免在where条件中使用!=,因为这样查询的时候会导致引擎放弃使用索引。

7.简单说说drop、delete、truncate的区别

delete和truncate只删除表的数据,不删除表结构。delete在事务提交之后才会生效,truncate、drop是立即生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值