Home  >  Article  >  Database  >  MYSQL 浅谈MyISAM 存储引擎

MYSQL 浅谈MyISAM 存储引擎

WBOY
WBOYOriginal
2016-06-07 18:06:561045browse

mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教

思维导图

介绍 mysql中用的最多存储引擎就是innodb和myisam。做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对《高性能MYSQL》书中提到的myisam的理解,请大家多多指教。 特点 > 不支持事务 证明如下: >> 表记录:t2表的engine是myisam。

>> 操作

注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务。 >> 下面请看innodb中的事务操作

> 存储结构:数据文件(.MYD),索引文件(.MYI)和结构文件(.frm) >> 特点:可以在不同服务器上拷贝数据文件和索引文件。

> 加锁和并发 加锁:对整张表进行加锁,而不是行。 并发:在读数据的时候,所有的表上都可以获得共享锁(读锁),每个连接都不互相干扰。 在写数据的时候,获得排他锁,会把整个表进行加锁,而其他的连接请求(读,写请求)都处于等待中。 > 修复表 >> 查看表状态

>> check一下表,看表是否正常。

>> repair(修复) 一下表。呵呵,我的这张表是正常的。

> 列索引。可以基于BLOB或TEXT类型列的前500个字符,创建相关索引。 >> 给t2表添加一个text列。

>> 表结构如下

>> 为content字段添加全文索引

>> 查看表的索引情况

> 延迟更新索引。MYISAM 默认把DELAY_KEY_WRITE开启, 整个选项是MYISAM引擎独有的。

注意:在查询结束后,不会将索引的改变数据写入磁盘,而是改变内存中的索引数据。只有在清理缓冲区或关闭表时才将索引块转储到磁盘。

> 压缩表

>> 查看数据文件位置

>> 压缩文件

总结 myisam在索引层和压缩层的卓越贡献,所以我们经常把myisam用于slave层,供客户端去读取。而myisam在写库操作的时候会产生排他锁,如果写操作一直占用的话,那么其他连接请求一直就处于等待中,从而造成堵塞,甚至能把服务器dang掉。 参考文件:《高性能MYSQL》
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn