网站地图    收藏   

主页 > 后端 > php资料库 >

MySQL存储引擎MyISAM特性概述_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] MySQL的默认存储引擎MyISAM一直都是MySQL非事务存储引擎的最佳选择。它在性能和可用特征之间,提供一种良好的均衡性,如全文索引、压缩、空间函数。MyISAM仅支持表锁,不支持行级锁。...

MySQL的默认存储引擎MyISAM一直都是MySQL非事务存储引擎的最佳选择。它在性能和可用特征之间,提供一种良好的均衡性,如全文索引、压缩、空间函数。MyISAM仅支持表锁,不支持行级锁。

 

加锁与并发

MyISAM对整张表加锁,而不是行。读取程序在需要读取数据时,在所有表上都可以获得共享锁(读锁),而写入程序可以获得排他锁(写锁)。用户在执行查询select语句时,可以同时在一张表内插入新数据,这也称读写并发,这是一个非常有用的特性。

 

自动修复

MySQL支持对MyISAM存储引擎的表进行自动检查与修复,如I/O调优。

 

手工修复

可以执行CHECK TABLE tab和REPAIR TABLE tab命令检查表中的错误,并修复错误。如果服务器离线还可以使用myisamchk命令行工具检查和修复表。

 

索引特性

在MyISAM存储引擎表中,用户可以基于BLOB或TEXT字段类型列的前500个字符创建相关索引。MyISAM支持全文索引,它可以根据个别单词为复杂的搜索选项创建索引。这一特性在博客文章系统中特别有用。

 

延迟更新索引

使用表创建选项DELAY_KEY_WRITE创建的MyISAM表,在查询结束后不会将索引的改变数据写入磁盘,而是写入内存键缓存区中缓存索引改变数据。它只会在清理缓冲区,或者关闭表时才将索引块转存到磁盘。对于数据经常改变,并且使用频繁的表,这种模式大大提高了表的处理能力。不过,如果服务器或系统崩溃,索引也会损坏,需要修复。可以使用脚本修复,如myisamchk工具,在重启服务器前进行修复,也可以使用自动恢复选项进行修复。延迟更新索引可以被全局设置,也可以单独为每张表设置。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论