news 2026/2/24 16:49:04

华为OD技术面真题 - 数据库MySQL - 3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD技术面真题 - 数据库MySQL - 3

文章目录

  • CHAR和VARCHAR的区别
  • VARCHAR(100)和 VARCHAR(10)的区别是什么?
  • 表级锁和行锁的区别
  • 共享锁和排他锁的区别
  • DATETIME 和 TIMESTAMP 的区别是什么?如何选择?

CHAR和VARCHAR的区别

CHAR 和 VARCHAR 是最常用到的字符串类型,两者的主要区别在于:CHAR 是定长字符串,VARCHAR 是变长字符串。

  • CHAR:存储时会在右边填充空格以达到指定的长度,检索时会去掉空格。CHAR 更适合存储长度较短或者长度都差不多的字符串
  • VARCHAR:存储时需要使用 1 或 2 个额外字节记录字符串的长度,检索时不需要处理。适合存储长度不确定或者差异较大的字符串.

CHAR(N) 和 VARCHAR(N) 的 N 都代表能够保存的字符数的最大值,无论是字母、数字还是中文,每个都只占用一个字符。

VARCHAR(100)和 VARCHAR(10)的区别是什么?

VARCHAR(100)VARCHAR(10)的本质区别是:能存储的字符最大长度不同。VARCHAR是变长存储,实际占用空间 = 真实字符长度 + 长度标记,虽然两个存储的字符数范围不同,但二者存储相同的字符串,所占用磁盘的存储空间其实是一样的。

表级锁和行锁的区别

  • 表级锁:MySQL 中锁定粒度比较大的一种锁,出现在针对非索引字段加的锁或存储引擎不支持行锁加锁的情况。对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。不过,触发锁冲突的概率最高,高并发下效率极低。表级锁和存储引擎无关,MyISAM 和 InnoDB 引擎都支持表级锁。
  • 行级锁:MySQL 中锁定粒度最小的一种锁,是针对索引字段加的锁,只针对当前操作的行记录进行加锁。 行级锁能大大减少数据库操作的冲突。其加锁粒度最小,并发度高,但加锁的开销也最大,加锁慢,会出现死锁。行级锁和存储引擎有关,是在存储引擎层面实现的。MyISAM不支持行锁,InnoDB支持行锁。

共享锁和排他锁的区别

  • 共享锁:又称读锁,事务在读取记录的时候获取共享锁,允许多个事务同时对同一记录加共享锁。共享
  • 排他锁:又称互斥锁/写锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。如果一个记录已经被当前加了排他锁,那其他事务不能再对这条事务加任何类型的锁(锁不兼容)。排他

注意:一条记录已经被当前事务加了共享锁(S 锁),其他事务是不能再加排他锁(X 锁)的。

使用共享锁/排他锁示例

# 共享锁 SELECT ... LOCK IN SHARE MODE; # 排他锁 SELECT ... FOR UPDATE;

DATETIME 和 TIMESTAMP 的区别是什么?如何选择?

核心区别对比:

维度DATETIMETIMESTAMP
存储空间8 字节4 字节
是否受时区影响
取值范围1000-01-01 ~ 9999-12-311970-01-01 ~ 2038-01-19
存储内容字面时间UTC 时间戳
是否自动更新(需显式设置)(可配置)

使用场景:
DATETIME适用场景:

  • 需要存储大于2038年的时间
  • 不关注时区,不期望时区变化

TIMESTAMP适用场景:

  • 需要关注多时区时间转换。
  • 希望数据库能自动管理时区转换
  • 不超过TIMESTAMP存储范围。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 3:53:58

计算机Java毕设实战-基于springboot的在线服务、个性化推荐智慧旅游系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/23 10:57:09

AgentScope 可以用skills的框架 与MS-Agent 的关系

AgentScope langchain没法用skills,而且调用llm的方式很怪 AgentScope 是由 阿里通义实验室 推出的 开源多智能体(Multi-Agent)开发框架,专注于构建、部署和监控基于大语言模型(LLM)的 生产级 AI 智能体应…

作者头像 李华
网站建设 2026/2/22 12:41:56

AI 找 bug 的局限性 和 Deepseek 优势明显

本文分析了一个Vue表单组件中数据意外丢失的Bug。问题表现为相同组件在不同页面(login.vue和CreatePost.vue)表现不一致,根本原因是ValidateForm组件在验证通过后自动清空表单的副作用操作导致数据时序问题。通过对比分析、数据流追踪和时序检…

作者头像 李华
网站建设 2026/2/24 13:43:24

计算机毕设 java 软件项目进度管理系统 基于 SpringBoot 的项目进度智能管理平台 Java 任务分配与状态追踪系统

计算机毕设 java 软件项目进度管理系统 423069(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享 传统软件项目管理依赖 Excel 表格记录,存在任务分配不清晰、进度追踪不及时、工时统…

作者头像 李华