Mysql(MyISAM)的读写互斥锁问题的解决方法


由于没办法在短期内增加读的服务器,所以采取对Mysql进行了一些配置,以牺牲数据实时性为代价,来换取所有服务器的生命安全。呵呵,具体相关调整以及思路如下:

MyISAM在读操作占主导的情况下是很高效的。可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而且,MyISAM和 InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,可如果时常做一些UPDATE,DELETE操作之后,数据文件就不再是连续的,形象一点来说,就是数据文件里出现了很多洞洞,此时再插入新数据时,按缺省设置会先看这些洞洞的大小是否可以容纳下新数据,如果可以,则直接把新数据保存到洞洞里,反之,则把新数据保存到数据文件的结尾。之所以这样做是为了减少数据文件的大小,降低文件碎片的产生。但 InnoDB里则不是这样,在InnoDB里,由于主键是cluster的,所以,数据文件始终是按照主键排序的,如果使用自增ID做主键,则新数据始终是位于数据文件的结尾。

了解了这些基础知识,下面说说MyISAM几个容易忽视的配置选项:

concurrent_insert:

通常来说,在MyISAM里读写操作是串行的,但当对同一个表进行查询和插入操作时,为了降低锁竞争的频率,根据concurrent_insert的设置,MyISAM是可以并行处理查询和插入的:

当concurrent_insert=0时,不允许并发插入功能。

当concurrent_insert=1时,允许对没有洞洞的表使用并发插入,新数据位于数据文件结尾(缺省)。

当concurrent_insert=2时,不管表有没有洞洞,都允许在数据文件结尾并发插入。

这样看来,把concurrent_insert设置为2是很划算的,至于由此产生的文件碎片,可以定期使用OPTIMIZE TABLE语法优化。

max_write_lock_count:

缺省情况下,写操作的优先级要高于读操作的优先级,即便是先发送的读请求,后发送的写请求,此时也会优先处理写请求,然后再处理读请求。这就造成一个问题:一旦我发出若干个写请求,就会堵塞所有的读请求,直到写请求全都处理完,才有机会处理读请求。此时可以考虑使用max_write_lock_count:

max_write_lock_count=1

有了这样的设置,当系统处理一个写操作后,就会暂停写操作,给读操作执行的机会。

low-priority-updates:

我们还可以更干脆点,直接降低写操作的优先级,给读操作更高的优先级。

low-priority-updates=1

综合来看,concurrent_insert=2是绝对推荐的,至于max_write_lock_count=1和low-priority-updates=1,则视情况而定,如果可以降低写操作的优先级,则使用low-priority-updates=1,否则使用max_write_lock_count=1。



相关阅读:
Apache认证设置(windows2000篇)
CSS3教程(4):网页边框和网页文字阴影
MSSQL数据类型及长度限制详细说明
SQL注入攻击第三波浪潮袭来
MYSQL初学者扫盲
让IE5.5+也支持position:fixed;
在windows2003下设置IIS及DNS
window.open()弹出居中的窗口
CSS 伪类实现的鼠标滑动图片链接
javascript实现的动态文字变换
通过服务器端特性配置加强php的安全
js活用事件触发对象动作
SQL Server优化篇:过滤条件设定提高索引效率
JMenuTab简单使用说明
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 2016幼儿园父亲节活动方案 政府副镇长2012年述职述廉报告 苏教版必修三语文单元导学与检测专题四-苏教版必修三四单元 珍惜网络珍惜你 关于学习的谚语 也许淡淡的日子作文100字 检讨书4 眼睛寻找光明 小学三年级作文450字:一年级趣事(小红狐和小黄狐第六集预告) 人教版七年级下册五单元作文:探险的真谛作文1100字 菱角的味道 狼牙山红色旅游的可持续发展战略 【散文】人的寿命 是什么让你一夕之间发生了改变 劳动的快乐作文600字 安徒生童话好词好句摘抄 当你悄悄陷入爱,请记得 天缀白云,心着雨 安然待人接物,平静处世行为 初中初一作文700字:冬日里的温暖 中考满分作文1700字:最佳中考满分作文--山西卷 梦幻之旅3作文500字 心中有她 拿破仑传读后感:荒野雄狮——读拿破仑有感 成都市某县农业发展局创先争优活动工作总结 打个电话给家人 局大院的秋色550字 蚊子大战 一个奇怪的人 校园之春400字 2012年保险公司经理工作总结及2013年工作计划 老师真了不起 思恋作文200字 中秋节搞笑祝福语精选 等车心情 春袭作文700字 感恩节促销活动方案 青春,不会有那么多如果 小老鼠皮皮的宝贝 当一回大人(刘春森) 月末 回来吧!美丽的地球!作文450字 爱,为你而免俗 一块抹布的独白 高中高一作文900字:爱似一首歌 在区委中心组会议的讲话 描写万圣节活动作文:万圣节活动丰富多彩 描写华山的诗句(现代诗) 躺在我胸前的夏天作文300字 高考作文之感(会员上传)

Copyright © 2016 phpStudy |