MySQL存储引擎

存储引擎:一种针对文件的读写/存取机制,存储引擎的建立基于表,并非基于库

1)MyISAM  (表锁)

特点:不支持事务不支持外键支持全文索引(从文本字段中截取部分,标识文本),但是对于一些在线分析处理操作速度快。它具有高速存储、检索以及全文搜索等功能。数据和索引分离开来,崩溃后无法安全恢复。使用较小的内存和空间磁盘。

适用场景:适合查询和插入为主的应用,查询性能明显优于InnoDB,索引是压缩后的,可以节省一部分空间。

底层:B+树,非聚集索引

文件组成:.frm文件存储表定义;.myd (MYData)文件存储表的数据;.myi (MYIndex)文件存储表的索引。

表锁(开销最小的策略锁,得到数据的写锁)

 1.读锁(共享锁):读锁允许加其他锁(select自动加读锁)

   2.写锁(独占写锁):不兼容其他的读写锁(updata,insert,delete加写锁)

2InnoDB  (行锁)

特点:支持事务,支持外键,不支持全文索引,主要是面向在线事务处理方面的应用,特点是行锁设计。InnoDB给MYSQL提供了具有提交、回滚和崩溃恢复能力的事务安全存储引擎,innoDB是为处理据大数据量的在大性能设计的,他的CPU使用效率极高。通过索引查询时,加行锁,非索引查询时加表锁。处理速度相比于MYISAM稍慢。

适用场景:适合频繁修改涉及到安全的应用。Mysql5.5.5之后默认的存储引擎

底层:B+树,聚集索引

行锁(开销策略最大锁,并行性最大)

  1. 读锁(共享锁):共享读锁(select不自动加锁,事务的隔离性)
  2. 写锁(排它锁):排他其他所有锁(updata,insert,delete加写锁)

读不加锁,读写不冲突,读写同时进行,select只能查询修改前的数据。

行锁(索引),表锁(非索引)

3Memory

特点:数据放在内存中,访问速度非常快,如果数据库重启或者宕机,表数据就会丢失。非常适合存储一些临时表varchar()默认是按照char()存储的,浪费内存。不支持text(大文本字段)和BLOB(图片)类型。如果数据中有text和BLOB类型,数据库会把这些数字转换到磁盘上。

适用场景:主要用于临时表/临时文件存储,或者作为中间查找表,数据存在于内存,关闭服务器是时要考虑好数据的存储。

底层:哈希,哈希索引一次定位

4Archive

特点:使用压缩算法将数据进行压缩后存储,压缩比例一般是1:10,主要提供插入和查询操作只支持INSERT和SELECT操作,不支持删除和修改。

适用场景:适合存储大量的独立的数据数据量大,不经常查询,主要存储日志数据

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值