思维导图
介绍
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》
喜欢编程
From: http://www.cnblogs.com/baochuan/archive/2012/03/15/2398276.html
相关推荐
首先,MyISAM是MySQL的默认存储引擎,适用于读取密集型应用。它提供了快速的全表扫描和COUNT()操作,适合那些不需要事务处理和外键约束的场景。MyISAM的一个特点是支持全文索引,这对于需要执行全文搜索的应用来说是...
首先,MyISAM存储引擎是MySQL早期的默认引擎,适用于读取密集型应用。它不支持事务和外键,因此不适合需要高度一致性的场景。MyISAM提供三种存储格式:静态表、动态表和压缩表。静态表占用空间较大,但记录长度固定...
1.mysql 备份数据 2.Mysql 更新数据 ...10.浅谈MySQL存储引擎选择InnoDB还是MyISAM 11.浅谈unique列上插入重复值的MySQL解决方案 12.深入了解MySQL 5.5分区功能增强.doc 13.在MySQL中操作日期和时间
MySQL的一大特色是其插入式存储引擎机制,这意味着它允许用户为不同的数据表选择不同的存储方式,以满足特定的需求。存储引擎决定了数据如何存储、索引如何创建以及数据的更新和查询如何执行。由于数据在关系数据库...
相比之下,MyISAM存储引擎强调了速度和空间效率,提供了全文索引、压缩和空间函数等功能,但在事务处理和行级锁定方面存在不足,不支持事务安全和崩溃后的安全恢复。MyISAM将数据和索引分别存储在.MYD和.MYI文件中,...
MySQL数据库中的InnoDB和MyISAM是两种不同的存储引擎,每种都有其独特的优势和应用场景。在选择存储引擎时,需要根据实际需求进行权衡。 InnoDB存储引擎的主要特点是支持事务处理(ACID属性),提供了行级锁定机制...
浅谈基于MySQL数据库结构设计 本文将围绕MySQL数据库结构设计进行讨论,旨在帮助读者更好地理解和应用MySQL数据库。 MySQL是一个开源的关系型数据库管理系统,它使用了一种名为Structured Query Language(SQL)的...
标题与描述:“使用Mysql来搭建可扩展的SNS网站(浅谈)” 知识点解析: 在探讨使用MySQL来搭建可扩展的社交网络服务(SNS)网站的过程中,文章重点介绍了如何利用MySQL数据库来应对SNS网站特有的数据挑战,特别是在...
MariaDB不仅是一个替代品,它致力于添加新的特性和改进,如Aria存储引擎,这是一个比MySQL原生MyISAM更安全、更快速的存储引擎。此外,MariaDB还引入了"pool of threads"功能,优化了多线程连接处理。 4. 存储引擎...
1. **直接拷贝数据库文件**(物理拷贝):这种方式适用于MyISAM存储引擎,直接复制数据文件`.myd`(数据)、`.myi`(索引)和`.frm`(表结构)。但对于InnoDB存储引擎,由于其事务性和表空间的特性,直接拷贝可能...
MySQL的MyISAM、InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题:为什么MySQL等主流数据库选择B+树的索引结构?如何基于索引结构,理解常见的MySQL索引优化思路?索引结构的选择基于...