`

[转] 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》
喜欢编程
From: http://www.cnblogs.com/baochuan/archive/2012/03/15/2398276.html
分享到:
评论

相关推荐

    浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析

    首先,MyISAM是MySQL的默认存储引擎,适用于读取密集型应用。它提供了快速的全表扫描和COUNT()操作,适合那些不需要事务处理和外键约束的场景。MyISAM的一个特点是支持全文索引,这对于需要执行全文搜索的应用来说是...

    浅谈MySQL中四种常用存储引擎

    首先,MyISAM存储引擎是MySQL早期的默认引擎,适用于读取密集型应用。它不支持事务和外键,因此不适合需要高度一致性的场景。MyISAM提供三种存储格式:静态表、动态表和压缩表。静态表占用空间较大,但记录长度固定...

    Mysql数据库从入门到精通.rar

    1.mysql 备份数据 2.Mysql 更新数据 ...10.浅谈MySQL存储引擎选择InnoDB还是MyISAM 11.浅谈unique列上插入重复值的MySQL解决方案 12.深入了解MySQL 5.5分区功能增强.doc 13.在MySQL中操作日期和时间

    浅谈MySql的存储引擎(表类型)

    MySQL的一大特色是其插入式存储引擎机制,这意味着它允许用户为不同的数据表选择不同的存储方式,以满足特定的需求。存储引擎决定了数据如何存储、索引如何创建以及数据的更新和查询如何执行。由于数据在关系数据库...

    浅谈选择mysql存储引擎的标准

    相比之下,MyISAM存储引擎强调了速度和空间效率,提供了全文索引、压缩和空间函数等功能,但在事务处理和行级锁定方面存在不足,不支持事务安全和崩溃后的安全恢复。MyISAM将数据和索引分别存储在.MYD和.MYI文件中,...

    浅谈MyISAM 和 InnoDB 的区别与优化

    MySQL数据库中的InnoDB和MyISAM是两种不同的存储引擎,每种都有其独特的优势和应用场景。在选择存储引擎时,需要根据实际需求进行权衡。 InnoDB存储引擎的主要特点是支持事务处理(ACID属性),提供了行级锁定机制...

    浅谈基于MySQL数据库结构设计.pptx

    浅谈基于MySQL数据库结构设计 本文将围绕MySQL数据库结构设计进行讨论,旨在帮助读者更好地理解和应用MySQL数据库。 MySQL是一个开源的关系型数据库管理系统,它使用了一种名为Structured Query Language(SQL)的...

    使用Mysql来搭建可扩展的SNS网站(浅谈)

    标题与描述:“使用Mysql来搭建可扩展的SNS网站(浅谈)” 知识点解析: 在探讨使用MySQL来搭建可扩展的社交网络服务(SNS)网站的过程中,文章重点介绍了如何利用MySQL数据库来应对SNS网站特有的数据挑战,特别是在...

    浅谈MySQL和mariadb区别

    MariaDB不仅是一个替代品,它致力于添加新的特性和改进,如Aria存储引擎,这是一个比MySQL原生MyISAM更安全、更快速的存储引擎。此外,MariaDB还引入了"pool of threads"功能,优化了多线程连接处理。 4. 存储引擎...

    浅谈MySQL数据库的备份与恢复

    1. **直接拷贝数据库文件**(物理拷贝):这种方式适用于MyISAM存储引擎,直接复制数据文件`.myd`(数据)、`.myi`(索引)和`.frm`(表结构)。但对于InnoDB存储引擎,由于其事务性和表空间的特性,直接拷贝可能...

    浅谈MySQL的B树索引与索引优化

    MySQL的MyISAM、InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题:为什么MySQL等主流数据库选择B+树的索引结构?如何基于索引结构,理解常见的MySQL索引优化思路?索引结构的选择基于...

Global site tag (gtag.js) - Google Analytics