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

MySQL数据库的简单的面试题

1、MySQL有哪些锁机制

MySQL有以下几种机制:
行级锁:行极锁在mysql 中最常用的锁机制,它只针对表的某一行进行加锁不受影响。MySQL的行级锁分为共享锁和排他锁两种类型,共享锁和排它锁不能同时存在于一行。
表级锁:表级锁是对整张表进行加锁,可以在需要对表进行全局操作的时候使用MySQL中表级锁分为读锁和写锁两种类型,读锁和写锁不能同时存在于一张表
元数据锁:元数据锁是MySQL表中一种特殊的锁机制,它用于保护数据的一致性和完整性。元数据锁可以保证对数据库进行数据结构更改的时候其他用户无法对该表的进行访问,修改或操作
间隙锁:间隙锁是MySQL中一种特殊的锁机制,它用于在事务中保护索引的键值,间隙锁的作用 是保证索引值的唯一性和一致性。
记录锁:记录锁是MySQL的一种特殊的锁机制,它用于保护行锁定的行,防止事务对该行进行修改或者删除
自增锁:当使用自增列作为逐渐的时候MySQL会自动对这个自增行进行加锁,以保证每次插入数据的时候自增的唯一性
临时表锁:当使用临时表时MySQL会自动对这个自增列进行加锁,以保证临时表的唯一性

注意:
不同锁机制对性能的影响也是不同的,选择合适的锁机制可以提升数据库的性能和并发处理能力同时也需要根据具体业务场景和需求来选择合适的锁机制,避免锁竞争和死锁等问题

2、描述myism和innodb 的区别

Myism:采用表级锁对myism表度不会阻塞读,但是会阻塞同表的写,对于myism写则会阻塞读和写。即一个线程获得一个表的写锁后,只有持有线程可以对表更新操作,其他线程的读写都进行等待
索引和数据是放在一起的
innodb 采用行级锁,支持事务,例如只对a列索引,如果update … where a=1 and b=2 其实也会整个表,select使用共享锁,update insert delete 采用排他锁,commit 会把锁职消当然select by id for update 也可以定制排他
索引和数据是分开的

3、MySQL中有哪种存储方式

innodb(b+树):支持ACID事务的存储的引擎,提供行级锁和MVVC(对版本并发控制)等高级特性被广泛地应用在大型的web应用中
myism(b树):不支持 处理事务和行级锁但是因为其简单快速小巧,而被广泛使用默认的表锁机制为表级锁
memory(哈希表):将数据保存到内存中,因此读取数据速度非常快,但是存储的容量有限不支持ACID事务
**csv(紧凑型数据块)**支持csv数据文件,常用于从其他人软件或数据库中导入数据
Archive(逗号分割符来存储的):csv格式,类似于zip的压缩格式,常用于从其他软件或数据库中导入数据.

在初始版mysql默认中默认使用的myism存储引擎,因为他的性能比较优秀,可以快速的读取大量数据,但是他不支持事务处理和行级锁,所以在高并发应用中可能出现严重的安全性问题

在MySQL5.5版本之后的数据库可是默认使用数据innodb存储引擎吗,支持事务所和行级锁

个人整理的一小部分,如有错误请在评论区提出

http://www.lryc.cn/news/223226.html

相关文章:

  • hbuilderx打包应用上传到app store构建版本的教程
  • 第五届泰迪杯数据分析技能赛B题源码图片分享
  • 【小白专用】VSCode下载和安装与配置PHP开发环境(详细版) 23.11.08
  • Qlik Sense : Fetching data with Qlik Web Connectors
  • 聊一聊 tcp/ip 在.NET故障分析的重要性
  • 利用梯度上升可视化卷积核:基于torch实现
  • python+playwright 学习-85 启动参数 proxy 设置代理几种方式
  • Clion 搭建Qt projects
  • 合肥工业大学数据库实验报告
  • 设计模式-装饰器模式(Decorator)
  • Java 数据结构篇-实现双链表的核心API
  • 电脑如何截屏?一起来揭晓答案!
  • 【实战-08】flink 消费kafka自定义序列化
  • 深入浅出 Django 异步编程
  • 力扣 138. 随机链表的复制
  • STM32外部中断大问题
  • FPGA配置采集AR0135工业相机,提供2套工程源码和技术支持
  • KubeSphere v3.4.0 部署K8S Docker + Prometheus + grafana
  • Codeforces Round 908 (Div. 2)题解
  • Redis笔记 Redis主从同步
  • 数据结构-Prim算法构造无向图的最小生成树
  • MFC串口通信(SerialPort)
  • Vim基本使用操作
  • 【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--作业
  • Naocs配置中心配置映射List、Map、Map嵌套List等方式
  • 如何通过CRM系统进行销售机会管理?
  • 解决idea启动tomcat控制台中文乱码
  • vscode + cmake + opencv example
  • day57【动态规划】647.回文子串 516.最长回文子序列
  • 分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?