`
zzhonghe
  • 浏览: 243755 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

决定MyISAM的Select&Insert&Update并发性能的参数

    博客分类:
  • DB
 
阅读更多
concurrent_insert  通过查看 show variables like '%concurrent%'

0: 表示不能并发,Select, insert之间只能串行执行


1:表中有空洞(删除记录留下的)情况下,阻塞insert; 表中无空洞的情况下,Insert并发插入表尾


2:无论是否有空洞都并发插入表尾


默认情况下, 这个值是1, 所以在既有Select又有insert的情况下,很容易就出现了近似串行的执行场景。


例如: 

session 1正在执行一条select语句,需要3秒

session 2未等1执行完,就执行了一条insert, 那么这个insert会等到session 1执行完才能执行(有空洞),同时这个session 2锁住表

session 3也是一条select语句,发现表被session2锁住了,只能等待

session 4也是select语句,同样等待

session 5是insert语句,继续等待

直到session1完成后, session2也完成后, 3,4才能执行,假设3,4也要3秒,那么session 5继续等待,其他session又开始等待。



结论就是, 如果那条语句执行的时间稍微长点, 同时又有insert的话,MyISAM表会非常容易变成串行执行。



解决方法:

1.  concurrent_insert=2  坏处就是delete的空洞永远都不去补回来了,浪费空间,浪费了cpu扫描


2.  --low-priority-updates启用mysqld,让select有更高优先级


3.  在语句中加上HIGH_PRIORITY, LOW_PRIORITY以定义优先级,让select赶在insert锁定之前执行

分享到:
评论

相关推荐

    MyISAM引擎与InnoDB引擎性能的对比

    MyISAM引擎与InnoDB引擎性能的对比

    mysql高级笔记,mysql索引、存储过程、查询缓存、并发参数调整、MyISAM表锁、系统性能优化

    mysql高级笔记,mysql索引、存储过程、查询缓存、并发参数调整、MyISAM表锁、系统性能优化

    mysql的myisam解决并发读写解决方法

    MyISAM在读操作占主导的...可一旦出现大量的读写并发,同InnoDB相比,MyISAM的效率就会直线下降,而 且,MyISAM和InnoDB的数据存储方式也有显著不同:通常,在MyISAM里,新数据会被附加到数据文件的结尾,······

    MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比

    1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是IndexedSequentialAccessMethod(有索引的顺序访问...MyISAM:myisam只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,

    MyISAM InnoDB 区别

     6、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表...

    MyISAM引擎与InnoDB引擎性能的对比.doc

    MyISAM引擎与InnoDB引擎性能的对比,

    MySQL存储引擎之争-InnoDB与MyISAM全面对决

    本文深入对比分析了MySQL的两大存储引擎InnoDB和MyISAM之间的区别,包括事务支持、数据恢复能力、并发控制、存储空间占用和读取性能等多个维度。通过详细的技术和场景分析, objectively评估两者的优缺点,并给出选择...

    MyISAM和InnoDB的异同

    MyISAM和InnoDB的异同 MyISAM和InnoDB的异同

    Mysql知识详解(内容非常丰富)

    MYISAM:全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎。 Innodb:行级锁,提供了具有提交、回滚和...

    myisam与innodb 区别 值得下载

    自己总结的 关于mysql存储引擎myisam innodb 的比较 两者区别 对面试会很有帮助

    使用Python如何测试InnoDB与MyISAM的读写性能

    由于近期有个项目对系统性能要求很高,技术选型上由于种种原因已经确定使用Mysql数据库,接下来就是要确定到底使用哪种存储引擎。我们的应用是典型的写多读少,写入内容为也很短,对系统的稳定性要求很高。所以存储...

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎 一、系统环境 1.1 ubuntu 12.0.4 X86_64 1.2 percona-xtrabackup-2.0.3.tar.gz 1.3 xtrabackup简介 xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时...

    Innodb与Myisam引擎的区别与应用场景

    Innodb与Myisam引擎的区别与应用场景 . 区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理); (2)锁机制不同: MyISAM是表级锁,而InnoDB是行级锁;

    MyISAM与InnoDB的索引差异

    MyISAM和InnoDB都使用B+树来实现索引: • MyISAM的索引与数据分开存储 • MyISAM的索引叶子存储指针,主键索引与普通索引无太大区别 • InnoDB的聚集索引和数据行统一存储 • InnoDB的聚集索引存储数据行本身,普通...

    Mysql 的存储引擎,myisam和innodb的区别

    简单的表达。  MyISAM 是非事务的存储引擎。  innodb是支持事务的存储引擎。    innodb的引擎比较适合于插入和更新操作比较多... MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而

    为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?

    统计一张表的总数量,是我们开发中常有的业务需求,通常...标题:为什么select count( * ) from t,在 InnoDB 引擎中比 MyISAM 慢?也是高频面试题。 InnoDB和MyISAM 是我们常用的 MySQL 存储引擎,所以主要对比一下 co

    myisam innodb对比1

    myisam innodb对比1

    MySQL存储引擎中MyISAM和InnoDB区别详解

    MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。  以下是一些细节和具体实现的差别:  ◆1.InnoDB不支持FULLTEXT类型的索引。 ...

    MySQL存储引擎中的MyISAM和InnoDB区别详解

    在使用MySQL的过程中对MyISAM和InnoDB这两个...不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。 InnoDB,是MySQL的数据库引擎之一,

Global site tag (gtag.js) - Google Analytics