数据库优化 学习笔记
一、MySQL引擎 之 MyISAM
- MySQL5.5 之前的版本默认存储引擎
- MyISAM存储引擎表由 frm(表结构文件)、MYD(数据文件) 和 MYI(索引文件)组成
1.1、什么是锁
-
锁主要作用是管理共享资源的并发访问
-
锁用于实现事务的隔离性
1.2、锁的类型
-
共享锁: 也称 “度锁”,针对同一份数据,多个读操作可以同时进行而不会互相影响
-
独占锁: 也称 “写锁”,当前写操作没有完成前,它会阻断其他 写锁 和 读锁
1.3、锁的粒度
-
表级锁: 设置表级锁,那么当一个用户在对表进行操作时,其他用户不能做任何操作。
-
行级锁: 设置行级锁,那么当一个用户在对一行数据进行操作时,其他用户不能对该行数据进行操作,但可以对比表中的其他数据进行操作。并发性好。
二、MyISAM 存储引擎特性
2.1、并发性和锁级别
-
并发性: MyISAM 存储引擎使用的是表级锁,并发行不怎么好。
-
锁级别: 表级锁。
2.2、表损坏与修复(了解)
- 检测表是否损坏
check table 表名;
- 修复表
repair table 表名;
2.3、MyISAM 表支持数据压缩(了解)
-- '-f' 表示强制压缩
-- 'myIsam.MYI' 要压缩的文件
myisampack -b -f myIsam.MYI
三、MyISAM 存储引擎限制
3.1、版本限制
- 版本 < MySQL5.0 时默认表大小为4G,如存储大表则要修改
MAX_Rows
和AVG_ROW_LENGTH
最大可存储数(行数) = MAX_Rows * AVG_ROW_LENGTH
- 版本 > MySQL5.0 时默认支持 256TB
3.2、适用场景
-
非事务型应用
-
只读类应用(因为它比较快)