MySQL的myisam解决并发读写问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

MySQL的myisam解决并发读写问题

2016-02-05 15:09:39 2002 1

MySQL的myisam解决并发读写,需要注意些什么?

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:37:49

    mysql的myisam解决并发读写解决方法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:
    缺省情况下,写操作的优先级要高于读操作的优先级,即便是先发送的读请求,后发送的写请求,此时也会优先处理写请求,然后再处理读请求。这就造成一个问题:www.linuxidc.com一旦我发出若干个写请求,就会堵塞所有的读请求,直到写请求全都处理完,才有机会处理读请求。此时可以考虑使用 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。

    0 0
相关问答

18

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1040223浏览量 回答数 18

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157702浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 337018浏览量 回答数 8

3

回答

请问postgres实时同步数据到mysql数据库有什么好的方案吗?

toni3 2019-06-29 14:55:43 116157浏览量 回答数 3

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 128921浏览量 回答数 2

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259846浏览量 回答数 38

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305644浏览量 回答数 249

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123707浏览量 回答数 97

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204396浏览量 回答数 2

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 121337浏览量 回答数 11
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载