首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

mysql 锁表详解

为了给高并发情况下的MySQL进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。 一、概述 MySQL有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 二、MyISAM表锁 MyISAM存储引擎只支持表锁,是现在用得最多的存储引擎。 1、查询表级锁争用情况 可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上的表锁定争夺: mysql> show status like ‘table%’; +———————–+———-+ | Variable_name | Value | +———————–+———-+ | Table_locks_immediate | 76939364 | | Table_locks_waited | 305089 | +———————–+———-+ 2 rows in set (0.00 sec)Table_locks_waited的值比较高,说明存在着较严重的表级锁争用情况。

01

SAP 凭证跳号分析

首先SAP在表TNRO:Definition of number range objects将会为各种object定义number range的属性 在此表中有这么几个字段.OBJECT: 坛 -- 让我们大家都到一起来探讨SAP!  F|v 比如FIAA-BELNR(固定资产) i<ef1 PERCENTAGE:使用到百分几warning. `q8Hj CODE: (比如你输入FBN1就是所有FI doc的number range定义) +F Table: nriv Number range intervals (和TNRO通过object联系)这个表是作为编号范围储存的。正常的话,缓冲区中的数量号是10,读下一个编号的时候程序就不去找数据库,而是直接从内存缓冲里读出。而数据库的值已经更新到内存里最后一个号+1了,所以重启以后,内存的号没了,它不会再检查业务数据表,数据库里是跳过以后的。财务、销售、采购这些最常用的凭证号,反而是没缓冲的,不会跳号。如果发生保存时数据库提交失败,也会跳。

01
领券