mysql 存储引擎
来源:互联网 发布:淘宝上秒杀活动在哪里 编辑:程序博客网 时间:2024/06/03 17:25
存储引擎:
一种用来存储mysql中对象的一种特定的结构(文件结构),处于mysql的最底层,直接存储数据,这样导致上层数据的操作,依赖于存储引擎的选择,比如事务。
查看当前存储引擎:show engines \G
Innodb
推荐使用存储引擎,更加注重数据的完整性和安全性,mysql版本>=5.5
提供事务、行级锁、外键约束的存储引擎
<
存储格式
数据,索引集中存储,存储于同一个表空间文件中。
数据(记录行) 索引(一种检索机制,也需要一定的空间)
创建表后会在对应数据库名目录下生成一个name.frm表结构文件,默认表的数据都在一个空间文件中 nmdata
通过配置,达到每张innodb表,一个表空间文件(name.ibd)的目的:
set global innodb_file_per_table = 1;
数据按照主键顺序存储,插入时做排序工作,效率低。
支持事务、外键约束、维护数据完整性。
并发性处理:擅长处理并发的。
行级锁定: row-level locking,实现了行级锁定,在一定情况下,可以选择行级锁来提升并发性。也支持表级锁定,innodb根据操作选择。
多版本并发控制, MVCC,效果达到无阻塞读操作。相当于在更新操作时候会生成一个副本,不影响对记录的读操作。
Myisam
version<= 5.5 MySQL默认的存储引擎。
ISAM:Indexed Sequential Access Method(索引顺序存取方法)的缩写,是一种文件系统。
擅长与处理 高速读与写。
<
存储方式
数据索引分别存储于不同的文件中。(name.frm name.MYD name.MYI)
数据的存储顺序为插入顺序,插入速度快,空间占用量小。
功能:
全文索引支持。(>=5.6 innodb 支持)
数据的压缩存储。
//使用mysql/bin目录下提供的可执行文件,在数据目录下执行//压缩(减少磁盘空间,io开销)myisampack tal_name//压缩后需要重新建立索引myisamchk -rq tbl_name//压缩后为只读表,如果需要更新,则需要解压后更新,再压缩(重新索引)myisamchk -unpack tbl_name
并发性:
仅仅支持表级锁定。
支持 并发插入。写操作中的插入操作,不会阻塞读操作(其他操作)
Archive
存档型
仅提供 插入和查询操作。非常高效 无阻塞的插入和查询。
Memory
内存型
数据存储于内存中,存储引擎。缓存型存储引擎
锁
当客户端操作表(记录)时,为了保证操作的隔离性(多个客户端操作不能互相影响),通过加锁来处理。
操作方面:
读锁:读操作时增加的锁,也叫共享锁,S-lock。特征是 阻塞其他客户端的写操作,不阻塞读操作。
写锁:写操作时增加的锁,也叫独占锁或排他锁,X-lock。特征,阻塞其他客户端的读,写操作。
锁定粒度(范围): 行级:提升并发性,锁本身开销大 表级:不利于并发性,锁本身开销小。
- 【MySQL】MySQL存储引擎
- 【MySQL】MySQL存储引擎
- mysql federated存储引擎引擎
- MySQL的存储引擎
- 1.5. MySQL存储引擎
- mysql存储引擎
- MySQL 存储引擎
- MySQL存储引擎
- Mysql的存储引擎
- MySQL存储引擎
- MySQL存储引擎-应用
- mysql存储引擎
- MySQL存储引擎认知
- MySQL存储引擎选择
- mysql archive存储引擎
- MySQL存储引擎
- Mysql数据库存储引擎
- mysql存储引擎比较
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- NFS ROOT 启动内核的配置(UBoot)
- 数据库锁机制
- tjut 2896
- 161009_qt显示阿拉伯输入法9x7点阵
- mysql 存储引擎
- linux多线程之条件变量
- spring的几个问题
- C++:Boost库_weak_ptr
- 再见北理工:忆北京研究生的编程时光
- Redis深入之路(三)
- 构建工具(简介)
- UVALive2362 POJ1004 HDU1064 ZOJ1048 Financial Management
- Java中引用类型和值类型的不同