`

mysql 锁的认知

 
阅读更多

mysql锁的问题

     1.myisam和memory采取表锁,innodb支持表锁和行锁,但默认使用行锁

 

     2.表锁:开销小,加锁快,不会出现死锁,锁粒度大,发生锁冲突的概率最高,并发度最低。而行锁完全相反

 

     3.myisam的表锁:

       3.1 使用 show status like 'table_%',如果 table_locks_waited(表示不能立即获取锁的查询次数)的值比较高,则表示表锁争用情况比较严重

 

       3.2 表锁分为:读锁和写锁,一般来说myisam的读写是串行的

           1.其中,如果一个线程活动读锁,其他线程只能“读取”表而不能进行其他操作

  2.如果获取的是写锁,则会阻塞其他线程的读写操作,直到锁被释放

  3.某线程加了读锁或写锁的情况下,该线程无法读取操作任何其他未加锁的表

  4.myisam对表进行select时候自动加读锁,进行insert、update、delete等自动加写锁

  5.myisam会一次性获取sql所需要的全部锁,这就是不会出现死锁的原因

  6.sql语句中使用了表别名,如果使用显示加锁的语句,需要在加锁语句中也对表进行别名加锁,例如:lock table bi_user as u read, bi_role as r read;

           

       

       3.3 myisam的读插并发,对于读写锁都是不允许另一个线程进行“插入”操作的,通过设置系统变量concurrent_insert来允许读插并发:

           concurrent_insert设置为0时,不允许并发插入

  concurrent_insert设置为1时,如果被锁表中没有空洞(即中没有被删除的行),允许令一线程对锁表从尾部插入数据,mysql默认的设置

  concurrent_insert设置为2时,无论有没有空洞,都允许对锁表尾部插入数据

 

      

 

 

 

  • 大小: 408.4 KB
  • 大小: 141.5 KB
  • 大小: 189.4 KB
分享到:
评论

相关推荐

    MYSQL优化实施方案

    - **潜在的风险**:优化手段本身就带有一定的风险,有时候这些风险甚至超出了我们的认知和预见。 - **技术的双刃剑**:任何技术都能解决一个问题,但同时也有可能引入新的问题。 - **可控的风险**:在优化过程中,...

    Apress.Pro.MySQL.Jul.2005

    - **数据库系统的基本概念**:介绍了数据库系统的基本组成及其工作原理,帮助读者建立对数据库系统的整体认知。 - **MySQL的历史和发展**:回顾了MySQL的发展历程,包括其从开源项目成长为全球最受欢迎的关系型...

    5天带你玩转MySQL-资料.rar

    以上就是"5天带你玩转MySQL"可能涉及的知识点,通过这个教程,学习者可以逐步建立起对MySQL的系统认知,并具备实际操作和问题解决能力。在实践中不断深化理解,才能真正玩转MySQL,为个人或企业的IT项目提供强大支撑...

    架构设计面试精讲2021年

    │ 10 如何回答 MySQL 的事务隔离级别和锁的机制?.mp4 │ 11 读多写少:MySQL 如何优化数据查询方案?.mp4 │ 13 缓存原理:应对面试你要掌握 Redi 哪些原理?.mp4 │ 案例串联 如何让系统抗住双十一的预约抢购...

    redis面试题Redis 常见面试题.docx

    #### 一、Redis基础认知 **1.1 什么是Redis?** Redis是一种基于内存的开源键值存储系统,其主要特点包括高性能、低延迟及多种数据结构的支持。作为一种非关系型数据库,Redis适用于高速缓存、消息队列处理以及...

    简历模板(带内容) (1).docx

    此外,求职者还掌握了MySQL数据库的基本操作和相关概念,如索引、事务和锁机制。在数据结构和算法方面,求职者熟悉常用的数据结构和高级算法,如动态规划。同时,他们能应用设计模式,如单例模式,且能熟练使用...

    学生选课管理系统设计

    此外,考虑到并发选课的实际情况,系统还需要设计良好的并发控制机制,如事务处理和锁机制,确保数据的一致性和完整性。 在系统设计中,用户体验是一个关键因素。界面设计应简洁明了,操作流程应逻辑清晰,减少用户...

    数据库系统工程师 历年真题及答案

    2. **数据库系统**:数据库系统是管理和存储数据的软件,包括数据库管理系统(如Oracle、MySQL、SQL Server等)及其相关组件。考生需要了解各种数据库系统的架构、语法、特性以及最佳实践。 3. **真题**:通过研究...

    java面试题

    3. **判断题.doc**: 判断题则需要考生对Java规范有清晰的认知,例如,是否所有的异常都可以被catch块捕获?是否所有的对象都能被序列化?String对象是否可以被修改? 4. **平安一部面试总结.txt**: 这个文件很可能...

    2021-2022计算机二级等级考试试题及答案No.14105.docx

    19. **同步锁**:在Java中,`synchronized`关键字用于实现线程间的互斥锁。 20. **二维数组声明**:正确的二维数组声明应指定每一维的大小,例如`double a[1][4]`声明了一个1行4列的二维数组。 21. **整型变量**:...

    taotao商城源码

    **taotao商城源码**作为一个典型的电商系统案例,不仅提供了丰富的技术实践机会,还帮助开发者建立起对大型分布式系统的整体认知。无论是对于个人技能提升还是职业发展都具有重要的意义。通过学习该项目,不仅可以...

    企业oracle数据分析岗位面试题

    #### 一、数据库系统的认知 - **知识点解析**: - **数据库系统概述**:数据库系统是指用于管理和处理数据的软件集合,包括数据库管理系统(DBMS)以及相关应用软件和服务。这些系统旨在提供高效、可靠的数据管理...

    nosql分布式数据库期末考试题.docx

    - **关系数据库**: MySQL、SQL Server 和 Oracle 均属于关系数据库,它们采用 SQL 作为标准查询语言,支持 ACID 特性(原子性、一致性、隔离性和持久性)。 - **非关系数据库**: 指的是不采用表格形式来组织数据的...

Global site tag (gtag.js) - Google Analytics