锐安盾-网站安全加速服务

中国站

联系我们

400-002-9968

售前咨询

售后服务

注册 登录

博客 > MySQL知识:MySQL存储引擎、锁机制、事务处理知识汇总

MySQL知识:MySQL存储引擎、锁机制、事务处理知识汇总

  • 标签:
  • MySQL
  • 存储引擎
  • 锁机制
  • MySQL事务处理
  • MySQL触发器

浏览量:341次评论:0次

作者:锐成网络整理时间:2024-07-15 17:10:21

MySQL是当前主流的开源关系型数据库管理系统之一,大多数的网站和应用程序都在使用它。今天我们汇总了MySQL存储引擎、锁机制、事务处理等相关知识,以下是全部内容。

MySQL知识:MySQL存储引擎、锁机制、事务处理知识汇总

一、MySQL存储引擎

1、InnoDB存储引擎

  • 默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀。
  • 数据存储在共享表空间,可以通过配置分开。也就是多个表和索引都存储在一个表空间中,可以通过配置文件改变此配置。
  • 对主键查询的性能高于其他类型的存储引擎。
  • 内部做了很多优化,从磁盘读取数据时会自动构建hash索引,插入数据时自动构建插入缓冲区。
  • 通过一些机制和工具支持真正的热备份。
  • 支持崩溃后的安全恢复。
  • 支持行级锁。
  • 支持外键。

2、MyISAM存储引擎

  • 拥有全文索引、压缩、空间函数。
  • 不支持事务和行级锁、不支持崩溃后的安全恢复。
  • 表存储在两个文件,MYD和MYI。
  • 设计简单,某些场景下性能很好,例如获取整个表有多少条数据,性能很高。
  • 全文索引不是很常用,不如使用外部的ElasticSearch或Lucene。

3、其他表引擎

Archive、Blackhole、CSV、Memory

4、使用策略

在大多数场景下建议使用InnoDB存储引擎。

二、MySQL锁机制

表锁是日常开发中的常见问题,当多个查询同一时刻进行数据修改时,就会产生并发控制的问题。共享锁和排他锁,就是读锁和写锁。

  • 共享锁,不堵塞,多个用户可以同时读一个资源,互不干扰。
  • 排他锁,一个写锁会阻塞其他的读锁和写锁,这样可以只允许一个用户进行写入,防止其他用户读取正在写入的资源。

锁的粒度

  • 表锁,系统开销最小,会锁定整张表,MyIsam使用表锁。
  • 行锁,最大程度的支持并发处理,但是也带来了最大的锁开销,InnoDB使用行锁。

三、MySQL事务处理

MySQL提供事务处理的表引擎,也就是InnoDB。

服务器层不管理事务,由下层的引擎实现,所以同一个事务中,使用多种引擎是不靠谱的。

需要注意,在非事务表上执行事务操作,MySQL不会发出提醒,也不会报错。

四、MySQL存储过程

为以后的使用保存的一条或多条MySQL语句的集合,因此也可以在存储过程中加入业务逻辑和流程。

可以在存储过程中创建表,更新数据,删除数据等等。

使用策略

可以通过把SQL语句封装在容易使用的单元中,简化复杂的操作

可以保证数据的一致性

可以简化对变动的管理

五、MySQL触发器

MySQL触发器提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程。使用场景:

  • 可以通过数据库中的相关表实现级联更改。
  • 实时监控某张表中的某个字段的更改而需要做出相应的处理。
  • 例如可以生成某些业务的编号。

注意不要滥用,否则会造成数据库及应用程序的维护困难。

重要声明:本文来自SQL数据库开发,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。

我的评论

还未登录?点击登录

微信扫码沟通
微信扫码沟通

微信扫码沟通

售前咨询
合作
售后
return head