MySQL事务隔离级别详解与 ENUM, CHAR/VARCHAR差异
版权申诉
193 浏览量
更新于2024-07-06
收藏 27KB DOCX 举报
在MySQL数据库面试中,面试官可能会关注以下几个关键知识点:
1. **事务隔离级别**:
MySQL的InnoDB存储引擎支持SQL标准定义的四种事务隔离级别:readuncommitted、readcommitted、repeatableread和serializable。- `readuncommitted`允许读取未提交的数据,可能导致脏读;`readcommitted`避免脏读,但可能出现不可重复读(即同一查询结果在多次执行时不同);`repeatableread`确保在同一会话内读取的结果不会因其他事务的更新而改变,但仍存在幻读问题;`serializable`是最严格的级别,保证了事务的串行化执行,避免了所有并发问题,但性能较低。
2. **ENUM类型**:
ENUM在MySQL中用于定义一组预定义的字符串值,创建表时指定这些选项。例如,`CREATE TABLE size (name ENUM('Small', 'Medium', 'Large'));`它限制了name字段只能取这些特定值。
3. **CHAR和VARCHAR的区别**:
CHAR类型具有固定的长度,存储时填充空格,检索时要去除尾部空格。VARCHAR则长度可变,节省空间但不保证填充。例如,`CREATE TABLE names (title CHAR(20) NOT NULL, description VARCHAR(100));`这里title需要固定20个字符,description则可变长。
4. **MySQL的存储引擎**:
MySQL支持多种存储引擎,如InnoDB(支持事务,适合复杂应用)、MyISAM(简单快速,无事务支持)、MEMORY(内存中存储,速度快但不持久)等。每个引擎有不同的锁定机制、索引策略和功能。
5. **TIMESTAMP类型**:
TIMESTAMP列默认在创建时用零值初始化,但当表中其他字段更新时,会自动更新为当前时间。UPDATECURRENT_TIMESTAMP用于这种自动更新的行为。
6. **主键与候选键**:
主键是表格的唯一标识符,一张表仅能有一个主键。候选键则是表中的一组属性,理论上可以被设置为主键,也可以作为外键引用,但不是必须的。
7. **MySQL性能分析**:
可以通过以下命令进行性能分析:`SHOW STATUS`查看系统状态变量如流量、命令计数等;`SHOW SESSION STATUS LIKE 'Select';`检查会话状态;`SHOW PROFILES`或`SHOW PROFILE`查看执行计划;`SHOW CREATE TABLE`检查表结构;以及监控排序、连接执行计划和存储引擎操作等。
8. **LIKE和REGEXP操作**:
LIKE用于基本模式匹配,如`SELECT * FROM users WHERE name LIKE '%John%'`;REGEXP(正则表达式)则提供了更复杂的模式匹配,如`SELECT * FROM users WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'`,适用于更精确的搜索和替换。但REGEXP操作通常比LIKE慢。
2021-09-23 上传
2021-06-13 上传
2020-10-29 上传
2020-04-27 上传
2019-07-19 上传
2021-10-25 上传
2022-07-06 上传
2021-11-08 上传
2022-07-11 上传
碎碎念的折木
- 粉丝: 4
- 资源: 7万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析