数据库之存储引擎

1. 存储引擎的概念

存储引擎是MYSQL数据库的组件,负责执行时间的数据I/O操作(数据的存储和提取),工作在文件系统之上,数据库的数据会先传到存储引擎,再按照存储引擎的存储格式保存到文件系统。

(常用的存储引擎: InnoDB MyISAM)

2. MyISAM 与 InnoDB 的区别

MyISAM : 不支持事务、外键约束,只支持表级锁定,适合单独的查询和插入的操作,读写会相互阻塞,支持全文索引,硬件资源占用较小,数据文件和索引文件是分开存储的。(存储成三个文件:表结构文件 .frm  数据文件.MYD 索引文件 .MYI)

使用场景:适用于不需要事务支持,单独的查询或插入数据的业务场景。

InnoDB : 支持事务,外键约束,支持行级锁定(在全表扫描时仍然会表级锁定),读写并发能力较好,支持全文索引(5.5版本之后),缓存能力较好可以减少磁盘IO压力,数据文件也是索引文件。(存储成两个文件:表结构文件 .frm  数据文件 .ibd)

使用场景:适用于需要事务的支持,一致性要求较高,数据会频繁更新,读写并发高的业务场景。

3. 查看表的存储引擎

show create table 表名
show table status [from 库名] where name ='表名' \G
show engines            查看当前当前系统支持的存储引擎
alter table 表名 engine=InnoDB/MYISAM           针对已存在的表修改存储引擎
create table 表名 (....) engine=InnoDB/MyISAM; 新建表时指定存储引擎
修改表的默认存储结构
vim /etc/my.cnf
[mysqld]
default-storage-engine=InnoDB/MyISAM 设置新建表的默认存储引擎。

4. 死锁的概念

死锁是指两个或多个事务在同一个资源上相互占用,并请求对方的锁定资源,从而导致恶性循环的现象。

5. 如何避免死锁?

1. 设置事务超时等待时间 innodb_lock_wait_timrout

2. 设置开启死锁检测        innodb_dead lock_detect

3. 使用更合理的业务逻辑

4. 尽量保持事务简短

5. 为表添加合理的索引,减少死锁发生的概率

6. 如果业务允许,可以降低隔离级别,比如采用提交读

7. 建议开发人员在读多写少的场景下使用乐观锁机制。

相关推荐

  1. ClickHouse存储引擎ReplacingMergeTree引擎

    2024-01-08 02:20:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 02:20:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 02:20:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 02:20:03       87 阅读
  4. Python语言-面向对象

    2024-01-08 02:20:03       96 阅读

热门阅读

  1. 基于Matlab的车道线检测技术研究与实现

    2024-01-08 02:20:03       62 阅读
  2. <设计模式> 七大原则

    2024-01-08 02:20:03       48 阅读
  3. Linux中MySQL的增删改查

    2024-01-08 02:20:03       54 阅读
  4. python代码大全(持续更新)

    2024-01-08 02:20:03       62 阅读
  5. springcloud之Feign超时提示Read timed out executing POST

    2024-01-08 02:20:03       60 阅读
  6. 【PostgreSQL的WAL日志解析工具pg_waldump/pg_xlogdump】

    2024-01-08 02:20:03       42 阅读
  7. 知识产权贯标和注册商标有什么区别

    2024-01-08 02:20:03       58 阅读
  8. 【LeetCode】1251. 平均售价

    2024-01-08 02:20:03       54 阅读
  9. c# entityfreamwork 使用like

    2024-01-08 02:20:03       53 阅读