1.执行一条SQL请求的过程是什么?

2.讲一讲mysql的引擎吧,你有什么了解?
在 MySQL 中,存储引擎相当于“数据的管理方式”, 它决定了表的数据在磁盘上的存储方式、是否支持事务、是否支持行锁、崩溃恢复等功能。
| 特性 | InnoDB(默认) | MyISAM | Memory |
|---|---|---|---|
| 是否支持事务 | ✅ 支持 ACID 事务 | ❌ 不支持 | ❌ 不支持 |
| 锁粒度 | 行级锁(并发高) | 表级锁(并发低) | 表级锁 |
| 崩溃恢复能力 | ✅ 有 Redo Log(可恢复) | ❌ 无恢复能力 | ❌ 数据存内存,重启丢失 |
| 外键支持 | ✅ 支持 | ❌ 不支持 | ❌ 不支持 |
| 适用场景 | 高并发读写、金融、电商 | 以读为主的查询统计 | 临时表、缓存数据(速度快) |
3.**MySQL为什么InnoDB是默认引擎?
- 支持ACID事务
- 行级锁下并发高,不会把整张表锁住
- 有redoLog,可以恢复数据
- 支持外键,保证数据的完整性
- 聚簇索引结构 → 主键顺序存储,读写效率高。4.索引
4.说一下mysql的innodb与MyISAM的区别?
- 事务
- MyISAM是非聚簇索引结构,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。innodb下,文件放在主键索引的叶子结点下,索引效率高,但辅助索引需要两查询,先查询主键在查询数据,故主键不应过大,而导致其他索引也很大
- 锁力度
- MyISAM用一个变量存储了整个行数,而innodb需要扫描全表
5.数据管理里,数据文件大体分成哪几种数据文件?
当你在 MySQL 中创建一个数据库和表(例如 database = my_test,表 = t_order)时,MySQL 会在数据目录 /var/lib/mysql/my_test/ 下生成多个文件。
这些文件就是表的元数据文件和数据文件,它们分别承担不同的作用:
| 文件名 | 说明 | 作用 |
|---|---|---|
| db.opt | 数据库级别配置文件 | 保存当前数据库的默认字符集和字符校验规则。 |
| t_order.frm | 表结构定义文件 | 保存表的元数据信息,包括列名、数据类型、索引、约束等表结构定义。MySQL 中每创建一张表都会生成对应的 .frm 文件。 |
| t_order.ibd | InnoDB 独立表空间文件 | 保存表的真实数据和索引。从 MySQL 5.6.6 起默认开启 innodb_file_per_table=1,所以每张表都会对应一个独立的 .ibd 文件。 |
⚙️ 说明与补充
- 如果
innodb_file_per_table=0,那么表数据不会存在单独的.ibd文件中,而是放进共享表空间文件(通常是ibdata1)。 .frm文件属于 MySQL Server 层,而.ibd属于 InnoDB 存储引擎层。db.opt是可选文件,用于存储数据库层级的默认配置,不影响具体表结构或数据。