目录
笔试高频题
1.数据库系统
数据库系统的核心是数据库管理系统。
数据库系统的最大特点是 数据的三级模式和二级独立性
数据库系统(DBS)一般由数据库、数据库管理系统、应用系统、数据库管理员构成。
数据库系统的特点
数据结构化
数据的共享性高、冗余度低、易扩充
数据独立性高
2. SQL语句的三种类型
DDL(数据定义语言):CREATE、DROP、ALTER
DML(数据操纵语言):INSERT、UPDATE、DELETE
DCL(数据控制语言):GRANT、REVOKE
3. 常用的数据模型
关系模型
层次模型(用树形结构表示各类实体以及实体间的关系)
网状模型
4. 事务的四个特性
原子性(一个事务要么全部提交成功,要么全部失败回滚)
一致性(一个事务在执行之前和执行之后,数据库都必须处于一致性状态)
隔离性(在并发环境中,并发的事务时相互隔离的,一个事务的执行不能不被其他事务干扰)
持续性(一旦事务提交,那么它对数据库中的对应数据的状态的变更就会永久保存到数据库中)
面试高频题
1. 三大范式
第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。
第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
2. 简述MySQL中的锁
共享锁也称为读锁,相互不阻塞,多个客户在同一时刻可以同时读取同一个资源而不相互干扰。
排他锁也称为写锁,会阻塞其他的写锁和读锁,确保在给定时间内只有一个用户能执行写入并防止其他用户读取正在写入的同一资源。
3.事务的隔离级别
读未提交(Read Uncommited)
已提交读(Read Commited)
可重复读(Repeatable Read)
串行化
4. 简述最左匹配原则
联合索引是指对表上的多个列的关键词进行索引,一般在联合索引中会用到最左匹配。对于联合索引的查询,如果精确匹配联合索引的左边连续一列或者多列,则mysql会一直向右匹配直到遇到范围查询(>,<,between,like)就停止匹配。Mysql会对第一个索引字段数据进行排序,在第一个字段基础上,再对第二个字段排序。
5. 了解的存储引擎有哪些?以及区别
MyISAM存储引擎:MySQL5.1及之前,MyISAM 是默认存储引擎。MyISAM不支持事务,Myisam支持表级锁,不支持行级锁,表不支持外键,该存储引擎存有表的行数,count运算会更快。适合查询频繁,不适合对于增删改要求高的情况
InnoDB存储引擎:InnoDB 是 MySQL 的默认事务型引擎,支持事务,表是基于聚簇索引建立的。支持表级锁和行级锁,支持外键,适合数据增删改查都频繁的情况。
6. 创建索引的优缺点
优点:
1)创建索引可以大幅提高系统性能,帮助用户提高查询的速度;
2)通过索引的唯一性,可以保证数据库表中的每一行数据的唯一性;
3)可以加速表与表之间的链接;
4)降低查询中分组和排序的时间。
缺点:
1)索引的存储需要占用磁盘空间;
2)当数据的量非常巨大时,索引的创建和维护所耗费的时间也是相当大的;
3)当每次执行CRU操作时,索引也需要动态维护,降低了数据的维护速度。
7.什么情况下使用索引会失效?
1)在 WHERE 子句中,如果在 OR 前的条件列是索引列,而在 OR 后的条件列不是索引列,那么索引会失效。
2)where子句中使用了IS NULL或者IS NOT NULL,会造成索引失效。
3)以“%”开头的LIKE语句,模糊匹配。
4)数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型)。
5)当我们在查询条件中对索引列使用函数,就会导致索引失效。
8.什么情况下不建议使用索引?
1)在where条件中里用不到的字段不需要创建索引。
2)数据量小的表最好不要使用索引。
3)如果表数据需要频繁修改,不建议使用索引
持续更新ing~ 欢迎大家关注!!