`
baker668
  • 浏览: 12602 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类

有关MyISAM引擎的锁定机制

 
阅读更多

本文介绍下,mysql数据库中MyISAM引擎的锁定机制的相关知识,感兴趣的朋友可以参考下。

本节内容: MyISAM引擎的锁定机制

 

在mysql数据库中,MyISAM存储引擎适合于读频率远大于写频率这一情况。 目前的应用可能会出现在某一时段读写频率相当。

 

大致如下: 一个客户端发出需要长时间运行的SELECT 其他客户端在同一个表上发出INSERT或者UPDATE,这个客户将等待SELECT完成 另一个客户在同一个表上发出另一个SELECT;因UPDATE或INSERT比SELECT有更高有优先级,该SELECT将等待UPDATE或INSERT完成,也将等待第一个SELECT完成 也就是说对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;对 MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作 ;MyISAM表的读操作与写操作之间,以及写操作之间是串行的!

 

解决方案: MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。 0 不允许并发操作 1 如果MyISAM表中没有空洞(即表的中间没有被删除的行),MyISAM允许在一个进程读表的同时,另一个进程从表尾插入记录。这也是MySQL的默认设置。 2 无论MyISAM表中有没有空洞,都允许在表尾并发插入记录 使用--low-priority-updates启用mysqld。这将给所有更新(修改)一个表的语句以比SELECT语句低的优先级。在这种情况下,在先前情形的最后的SELECT语句将在INSERT语句 前执行。

 

为max_write_lock_count设置一个低值,使得在一定数量的WRITE锁定后,给出READ锁定 使用LOW_PRIORITY属性给于一个特定的INSERT,UPDATE或DELETE较低的优先级 使用HIGH_PRIORITY属性给于一个特定的SELECT 使用INSERT DELAYED语句

文章转载:http://bbs.it-home.org/thread-17004-1-1.html

分享到:
评论

相关推荐

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

    MyISAM引擎是MySQL早期的默认存储引擎,以其高速度和轻量级而闻名。它不支持事务处理,这意味着在执行一系列操作时,如果其中一个操作失败,整个事务不会被回滚。这使得MyISAM适合于读取密集型的应用,例如数据分析...

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

    ### Innodb与Myisam引擎的区别与应用场景 在MySQL数据库管理系统中,选择合适的存储引擎对于确保数据的安全性、完整性和性能至关重要。其中,InnoDB和MyISAM是最为常见的两种存储引擎,它们各自具备独特的特性和...

    mysql架构与存储引擎(MySQL逻辑架构、InnoDB引擎、MyISAM引擎、存储引擎选择).docx

    ##### 2、MyISAM引擎 - **基础描述**:MyISAM是MySQL早期版本的默认存储引擎,不支持事务处理和行级锁,但提供了全文索引支持。 - **特点描述**: - **锁表机制**:在读取数据时使用共享锁,在写入数据时使用...

    MySQL 数据库锁定机制

    ### MySQL 数据库锁定机制 #### 一、概览 MySQL 数据库锁定机制是数据库系统中一项重要的技术,用于处理多用户并发访问同一份数据时可能产生的冲突问题。MySQL 支持多种类型的锁定机制,包括行级锁定、表级锁定...

    mysql DB引擎myisam与innodB

    ### MySQL 数据库引擎 MyISAM 与 InnoDB 在 MySQL 数据库系统中,存在多种不同的存储引擎,其中最为人所熟知且广泛使用的两种是 MyISAM 和 InnoDB。这两种存储引擎各自具有独特的特点和适用场景。 #### InnoDB:...

    mysql事务与锁机制(存储引擎和锁、MyISAM锁机制、InnoDB锁机制、Next-Key锁、Dead-Lock).docx

    MyISAM引擎采用表级锁,其特点是在读操作时不会阻止其他线程对同一表的读请求,但在写操作时会阻塞其他线程的读写请求。这种锁机制使得读写操作之间以及写写操作之间呈串行化状态,即一次会话获取写锁后,其他所有...

    MyISAM和InnoDB的异同

    #### MyISAM引擎概述 MyISAM是MySQL早期默认使用的存储引擎,它主要适用于读取密集型的应用场景。MyISAM支持表级锁定,这意味着当一个表被用于写入操作时,整个表都会被锁定,直到该操作完成。这会导致其他查询或...

    MyISAM 锁1

    MyISAM是MySQL数据库中的一种存储引擎,它在处理数据时使用了特定的锁定机制来实现并发控制。本文将深入探讨MyISAM的锁机制,包括读锁和写锁,并通过示例展示其工作原理。 首先,我们来看MyISAM的读锁(READ lock)...

    数据库引擎 MyISAM 和 InnoDB 对比

    ### 数据库引擎 MyISAM 和 InnoDB 的对比分析 在MySQL数据库系统中,MyISAM与InnoDB是最常被提及的两种存储引擎。这两种引擎在功能、性能以及适用场景上存在显著差异,本文将深入探讨这两者之间的区别,并分析它们...

    mysql数据据存储引擎InnoDB和MyISAM的优势及区别分享.pdf

    3. 锁定机制:InnoDB 使用行锁(locking on row level),而 MyISAM 使用表锁(table lock)。 4. 性能:InnoDB 的性能比 MyISAM 高,特别是在高并发场景下。 5. 数据存储:InnoDB 将数据和索引存放在表空间里,可能...

    MySQL MyISAM默认存储引擎实现原理

    MyISAM引擎在处理数据时,根据字段类型的不同,会采用不同的存储策略。例如,如果表中有VARCHAR、TEXT或BLOB类型的字段,那么该表就会被存储为动态格式,这可能导致额外的存储开销,但能处理变长数据。 相比之下,...

    掌握MyISAM的精髓:深入解析其存储引擎特性

    1. **表级锁定**:MyISAM 使用表级锁定机制,这意味着在执行写操作时,整个表将被锁定,其他用户无法进行任何读写操作。这虽然降低了并发性能,但在读密集型应用中通常不是问题。 2. **全文索引支持**:MyISAM 是 ...

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

    相对地,MyISAM采用表级锁,一旦有查询需要锁定整个表,其他所有线程都将被阻塞,这限制了其并发处理能力。 在存储空间占用方面,InnoDB由于需要记录事务日志和维护行级锁信息,通常会占用更多的磁盘空间。然而,...

    MySql教程-数据库存储引擎.pdf

    MyISAM存储引擎是一个独立于操作系统的存储引擎,每当建立一个MyISAM引擎的表时,会在本地磁盘上建立三个文件,文件名就是表名。MyISAM表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM存储引擎。...

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

    在MySQL数据库系统中,MyISAM是一种非常常用的存储引擎。它以其高效性和简单的结构而在许多场景下得到广泛应用,尤其是在那些读取操作远多于写入操作的应用场景中。然而,当面对高并发的读写操作时,MyISAM的表现...

    MyISAM和InnoDB索引引擎的B+树索引实现1

    在数据库管理系统中,索引是一种用于加速查询的重要机制,尤其在处理大量数据时显得至关重要。本文主要讨论两种常见的存储引擎——MyISAM和InnoDB,它们在B+树索引实现上的差异。 首先,MyISAM是MySQL早期的默认...

    myisam和innodb的区别

    2. **行级锁定**:InnoDB支持行级锁定机制,这意味着在高并发情况下多个事务可以同时访问不同的行而不会发生冲突。这大大提高了系统的并发性能。 3. **多版本并发控制(MVCC)**:通过MVCC机制,InnoDB能够支持非阻塞...

Global site tag (gtag.js) - Google Analytics