MySQL从入门到精通:面试题详解与实战指南
一、MySQL基础知识
1、什么是MySQL?
MySQL是一个关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前归Oracle公司所有,它使用SQL(结构化查询语言)作为其主要的数据库管理和操作语言。
2、MySQL的主要特点?
开源:任何人都可以免费获取并修改其源码。
跨平台支持:可在多种操作系统上运行,包括Windows、Linux、Unix等。
高性能:通过多种优化技术提供快速的数据访问和处理能力。
易于使用:提供了图形化界面(如MySQL Workbench)和命令行工具。
3、SQL语句分类及代表性关键字?
DML(数据操作语言):SELECT、INSERT、UPDATE、DELETE。
DDL(数据定义语言):CREATE、ALTER、DROP。
DCL(数据控制语言):GRANT、REVOKE。
TCL(事务控制语言):COMMIT、ROLLBACK。
4、CHAR和VARCHAR的区别?
CHAR是固定长度字符串,不足部分用空格填充;VARCHAR是可变长字符串,只占用实际存储空间。
5、主键和候选键有什么区别?
主键是用来唯一标识表中的每一行记录的字段,而候选键也是能够唯一标识表中记录的字段组合,但未被选作主键。
6、MyISAM和InnoDB的区别?
MyISAM不支持事务和外键,适合OLAP;InnoDB支持事务、外键和并发操作,适合OLTP。
二、MySQL进阶知识
1、什么是非关系型数据库?
非关系型数据库(NoSQL)是一种不使用传统关系模型来存储数据的数据库,它们可以存储结构化、半结构化甚至非结构化数据,通常用于大规模数据存储和实时Web应用。
2、事务的隔离级别有哪些?
Read Uncommitted(未提交读)
Read Committed(提交读)
Repeatable Read(可重复读)
Serializable(序列化)
3、索引的类型及区别?
普通索引、唯一索引、主键索引、全文索引,普通索引允许重复,唯一索引不允许重复,主键索引既是唯一索引又是聚集索引。
4、什么是视图?有何优缺点?
视图是基于一个或多个表的逻辑表现形式,它提供了一种对原始数据进行抽象的方式,优点包括简化复杂查询、提高安全性和逻辑数据独立性;缺点包括对性能可能有一定影响。
5、触发器的作用?
触发器用于在插入、更新或删除操作时自动执行预定义的SQL语句,以实现复杂的业务规则和数据完整性约束。
三、MySQL优化与实践
1、如何优化SQL查询?
使用索引加快查询速度。
避免全表扫描,尽量在WHERE子句中使用索引列。
减少SELECT *,只选择需要的列。
使用LIMIT限制返回的行数。
2、什么情况下应建索引?
经常作为查询条件、排序、分组的列。
经常作为连接条件的列。
唯一性约束的列。
3、解释MySQL中的自连接。
自连接是表与其自身进行连接的操作,常用于比较表中的行,例如查找同一表中不同记录的匹配情况。
4、数据库三范式是什么?
第一范式(1NF):确保每列都是不可分割的基本数据项。
第二范式(2NF):在1NF基础上,要求非主键列完全依赖于主键。
第三范式(3NF):在2NF基础上,任何非主属性不传递依赖于其他非主属性。
四、常见问题解答
1、drop、truncate、delete区别?
DELETE:逐行删除,可以带有WHERE子句,可回滚。
TRUNCATE:快速删除所有行,不能回滚,重置自增计数器。
DROP:删除表结构及其数据,不能回滚,比DELETE快。
2、什么是覆盖索引?
当索引包含所有查询所需的字段时,查询可以通过仅扫描索引来完成,无需回表查询数据文件,这称为覆盖索引。
3、如何开启MySQL慢查询日志?
通过设置slow_query_log
变量为ON,并配置相应的日志文件路径即可开启慢查询日志功能。
4、什么是数据库事务的ACID特性?
A(原子性):事务要么全部完成,要么完全不执行。
C(一致性):事务完成后,所有数据都必须保持一致状态。
I(隔离性):并发事务之间互不干扰。
D(持久性):一旦事务提交,改变就是永久性的,即使系统崩溃也不会丢失。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1386216.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复