当前位置:首页 > mysql > 正文

mysql面试必会100道题

  • mysql
  • 2024-04-27 18:53:57
  • 5077

一、MySQL面试中常见的问题有哪些?

MySQL面试必备知识点概述


在MySQL面试过程中,面试官通常会重点考察应聘者的基础理论和实践经验。 以下是一些常见的面试主题,涵盖ACID概念、索引优化、数据结构、事务处理、存储引擎特性、数据类型等核心领域:


了解ACID原理和索引


ACID的特点:原子性保证操作要么成功要么失败,一致性保证状态的传递没有中间状态,隔离性限制事务内部的可见性,持久性(.Durability)保证了操作提交的持久性。
索引:主键索引唯一且不能重复,可以有多个唯一索引(联合索引)可以同时覆盖多列,MyISAM支持全文索引但仅限英文;;在InnoDB引擎中,B+树节点大小通常为16k,以提高存储效率。

数据结构与范式


B+树的节点大小通常为一页,InnoDB默认值为16KB最左前缀原则;要求在union中遵循索引查询中字段的顺序,以利用索引性能。
遵循数据库范式:1NF要求列不可分区,2NF确保非主键依赖于主键的所有列,3NF排除非主键依赖于其他非主键。

varchar和char之间选择


存储空间和性能之间选择:varchar适合存储变长数据,节省空间,但可能影响查询性能;char具有固定长度,这使得搜索速度快但浪费空间。


乐观锁和悲观锁的权衡


悲观锁(如行锁、表锁)在每次操作前加锁,适合写入多的场景,但会导致性能下降;
乐观锁(如版本号机制)假设不冲突,只在更新时检查,适合读多写少的场景,比如写状态机制。

大表优化策略


通过数据范围限制、读写隔离、缓存、垂直和水平分区来提高性能。

存储引擎特性


InnoDB支持事务和行级锁,但MyISAM缺乏快速但安全性较差的MEMORY引擎。

其他知识点


Int类型显示长度不影响存储触发器自动执行MySQL有多种类型;
查询案例敏感度可以通过utf8_general_ci/utf8_bin等设置;
选择查询策略和索引范围,比如使用结束索引。

虽然上述知识点很丰富,但面试时,面试官更喜欢根据应聘者的经历和具体项目来提问。 请记住,关键是理解这些基本理论并将其应用到实际场景中。


对MySQL的深入研究,包括数据类型、索引创建、性能调优、事务管理以及对存储引擎的比较了解,都是提高面试竞争力的重要因素。 祝您面试顺利,并希望看到您在实践中展示扎实的技能和知识。


二、关于mysql面试题
1.数据表中添加1个字段。 Usorid用于记住一个人离开的时间。 当该过程完成或不进行处理而退出时,用户的证书将被清除。 当其他人进入php页面时,判断用户是否为空。
2加锁和解锁
mysql>LOCKTABLESreal_tableWRITE,insert_tableWRITE;获取插入id
4selectlast_insert_id()