MySQL灵魂16问,你能撑到第几问?
索引适合在WHERE子句或JOIN子句中使用的列。 基数较小的列不建议索引。 对长字符串列使用短索引或前缀索引以节省空间。 避免过度索引,索引会增加写操作开销和维护时间。 约定访问顺序,减少死锁风险。 在事务中锁定所有需要的资源,减少多个锁定点。 使用升级锁定颗粒度或分布式锁。 应用服务器发送SQL请求。 数据库解析SQL并生成执行计划。 执行SQL,并将结果返回给应用服务器。 关闭连接并释放资源。 使用 查看 优化索引、减少查询时间。 限制连接数,防止突发连接导致资源耗尽。
发布日期:2025-04-18 03:52:44
浏览次数:15
分类:精选文章
本文共 1875 字,大约阅读时间需要 6 分钟。
MySQL面试经典问题解答
1. 数据库三大范式是什么?
数据库设计中,三大范式是数据库规范化理论的核心。
- 第一范式:每个列都不能再被分解成更小的单位。
- 第二范式:非主键列完全依赖于主键,不能部分依赖。
- 第三范式:非主键列只能依赖于主键,不能同时依赖多个非主键列。遵守范式可以提高数据库的稳定性,但在实际应用中可能会因性能需求对范式进行优化。
2. MySQL有关权限的表都有哪些?
MySQL服务器使用以下权限表来控制用户访问:
user:记录用户帐号信息,权限为全局级别。db:记录数据库和用户的访问权限。table_priv:记录表级操作权限。columns_priv:记录列级操作权限。host:记录主机级别的访问控制。这些表不受GRANT和REVOKE语句的影响。
3. 事务的四大特性(ACID)是什么?
- 原子性:事务不可分割,要么全部完成,要么全部无效。
- 一致性:事务完成后,数据保持一致性。
- 隔离性:并发事务之间数据独立,互不影响。
- 持久性:提交事务后,数据改变对数据库持久,不受故障影响。
4. 如何设计索引?
索引设计原则:
5. SQL语句分类有哪些?
SQL语句分为:
- 数据定义语言(DDL):如CREATE、ALTER、DROP,用于定义数据库结构。
- 数据查询语言(DQL):如SELECT,用于查询数据。
- 数据操纵语言(DML):如INSERT、UPDATE、DELETE,用于操作数据。
- 数据控制语言(DCL):如GRANT、COMMIT,用于权限控制和事务管理。
6. 分库分表的目的是什么?
分库分表的主要目的是解决大数据量带来的性能问题:
- 解耦数据库:将大表拆分为小表。
- 提高并发能力:减少锁竞争。
- 优化存储和网络:减少单点压力。常用中间件工具包括Nginx、Redis等。
7. 什么是死锁?如何解决?
死锁:两个或多个事务占用同一资源,导致相互等待。
解决方法:8. 脏读、不可重复读、幻读是什么?
- 脏读:未提交事务更新的数据被其他事务读取。
- 不可重复读:事务两次读取数据结果不一致,可能由新事务插入导致。
- 幻读:事务两次查询数据行数不一致,可能由新事务插入新行导致。
9. 视图的特点是什么?
视图的特点:
- 列来自不同表,逻辑上建立新关系。
- 视图不是真实表,依赖基本表(实表)。
- 视图删除不影响基本表,更新影响基本表。
- 对多个基本表的视图不支持插入和删除操作。视图操作包括创建、查看、删除和修改。
10. SQL的生命周期是什么?
SQL的执行流程:
11. 主键选择自增ID还是UUID?
推荐使用自增ID:
- 在InnoDB中,主键索引作为聚簇索引,自增ID排列有序。
- UUID插入时大小不定,导致索引碎片,性能下降。自增ID适合数据量较大时使用。
12. MySQL CPU飙升到100%怎么处理?
处理方法:
top命令确认是否是mysqld占用。show processlist,分析长时间运行的SQL。13. MySQL主从复制解决了哪些问题?
- 高可用性:主库故障后切换从库。
- 读写分离:从库仅读,主库仅写。
- 备份:从库自动同步数据。
- 数据分布:数据分散存储,降低故障风险。
- 负载均衡:分散写操作,减轻主库压力。
14. GTID是什么?
全局事务ID(GTID):
- 每个实例的唯一事务编号。
- 由UUID和TID组成。
- 用于复制故障恢复,简化主从复制管理。
15. MySQL常用的备份工具有哪些?
- 物理备份:如
copy、xtrabackup。 - 逻辑备份:如
mysqldump、mydumper。 - 混合备份:结合逻辑和物理备份。
16. MySQL备份计划如何制定?
备份策略:
- 全量备份:每天一次,备份时间选在低峰期。
- 增量备份:每天进行,备份时间同样在低峰期。
- 媒体类型选择:100GB以下使用
mysqldump,100GB以上使用xtrabackup。 - 定期检查备份是否有效,确保恢复可用。
发表评论
最新留言
很好
[***.229.124.182]2026年06月14日 12时02分19秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP的引用举例
2023-03-01
PHP相关代码
2023-03-01
RabbitMQ
2023-03-01
php知识点记录
2023-03-01
PHP第三方登录—OAuth2.0协议
2023-03-01
php筛选js,php如何多条件筛选js代码
2023-03-01
R730服务器做了raid的硬盘,插在R720上面可以用吗?
2023-03-01
PHP类数组式访问(ArrayAccess接口)
2023-03-01
PHP系列:浅谈PHP中isset()和empty() 函数的区别
2023-03-01
PHP索引数组unset的坑-array_values解决方案
2023-03-01
PHP索引数组排序方法整理(冒泡、选择、插入、快速)
2023-03-01
PHP线程安全和非线程安全
2023-03-01
R3LIVE开源项目常见问题解决方案
2023-03-01
php缃戠珯,www.wfzwz.com
2023-03-01
php缓存查询函数
2023-03-01
php编写TCP服务端和客户端程序
2023-03-01
php编码规范
2023-03-01
PHP编码规范-PSR1、psr2 /psr3 psr4
2023-03-01
PHP编程效率的20个要点
2023-03-01