当前位置: 首页 > news >正文

网站域名实名认证怎么做四川移动网站建设

网站域名实名认证怎么做,四川移动网站建设,中山市网站开发外包公司,淘宝网请人做淘宝客网站在MySQL中#xff0c;根据加锁的粒度#xff0c;可以将数据库的锁细分为表锁、行锁、页锁。其中#xff0c;表锁(Table Lock)是一种粗粒度的锁#xff0c;它锁定整个表#xff0c;阻止其他事务访问表中的任何行#xff1b;行锁(Row Lock)是一种细粒度的锁#xff0c;它锁…在MySQL中根据加锁的粒度可以将数据库的锁细分为表锁、行锁、页锁。其中表锁(Table Lock)是一种粗粒度的锁它锁定整个表阻止其他事务访问表中的任何行行锁(Row Lock)是一种细粒度的锁它锁定指定的行页锁(Page Lock)是介于行锁和表锁之间的一种锁机制它锁定表的一个页或多个页。此外无论是表锁还是行锁都可以根据是否独占数据还是共享数据进一步细分为共享锁和排他锁。这里重点介绍下行锁关于表锁和页锁可以参考笔者之前的MySQL锁概述一文。 行锁的实现方式 对不同的存储引擎锁的支持情况和使用方式是不同的。如MyISAM只支持表级锁不支持行锁。InnoDB默认采用行锁在未使用索引字段查询时升级为表锁。需要说明的是即便在条件中使用了索引字段MySQL会根据自身的执行计划考虑是否使用索引。如果MySQL认为全表扫描效率更高即使指定了索引字段也不会使用索引这种情况下InnoDB将使用表锁而不是行锁。因此在分析锁冲突时有必要进一步检查SQL的执行计划以确认是否真正使用了索引。 InnoDB为实现行锁提供了多种实现方式。如记录锁(Record Lock)、间隙锁(Gap Lock)、临键锁(Next-Key Lock)等。需要说明的是行锁仅在使用索引字段时才会生效否则会升级为表锁。 记录锁(Record Lock) 记录锁是封锁记录记录锁也叫行锁示例如下 SELECT * FROM test_table WHERE id 1 FOR UPDATE;它会在 id1 的记录上加上记录锁以阻止其他事务插入更新删除 id1 这一行。 间隙锁(Gap Lock) 间隙锁锁定一个范围但不包含记录本身间隙锁是封锁索引记录中的间隔或者第一条索引记录之前的范围又或者最后一条索引记录之后的范围。间隙锁主要目的也是为了避免出现幻读(Phantom Read)对应的事务的隔离级别降级为可重复读。如果将事务的隔离性级别调整成读已提交或读未提交间隙锁都会失效。间隙锁对应的事务隔离级别是可重复。示例如下 SELECT * FROM test_table WHERE id 100 FOR UPDATE以下情况均会产生间隙锁 (1) 使用普通索引且需要锁定一个区间。 (2) 使用多列唯一索引且需要锁定一个区间。 (3) 使用唯一索引且需要锁定一个区间。 注意间隙锁封锁的不是多条记录而是一个区间以防止出现幻读现象。 临键锁(Next-Key Lock) 临键锁是记录锁与间隙锁的组合它的封锁范围既包含索引记录又包含索引区间。同间隙锁一样临键锁也是为了避免出现幻读(Phantom Read)。同样的临键锁对应的事务隔离级别是可重复。示例如下 SELECT * FROM table WHERE age 24 FOR UPDATE; 临键锁会锁住一段左开右闭区间的数据。需要强调的一点是InnoDB 中临键锁只与非唯一索引列有关在唯一索引列(包括主键列)上不存在临键锁。 行锁的共享锁或排他锁 行锁支持设置共享模式或排他模式。其中共享模式允许其他事务读操作不允许其他事务写操作注意共享模式也不支持当前事务写操作。排他模式不允许其他事务读操作。不允许其他事务写操作。 共享 共享行锁的设置如下 SELECT ... FOR SHARE多事务并发环境中通过LOCK IN SHARE MODE可以避免脏读Dirty Read即读取到其他事务未提交的数据。 SELECT … FOR SHARE 是 SELECT … LOCK IN SHARE MODE的升级写法不同的用户应该根据当前的MySQL版本选择合适的写法。注意MySQL兼容支持LOCK IN SHARE MODE的写法。此外FOR SHARE支持NOWAIT和, SKIP LOCKED等选项。 排他 排他行锁的设置如下 SELECT ... FOR UPDATE共享锁适用于那些需要确保读取的数据在事务期间不被修改但允许其他事务并发读取的场景排他锁则适用于需要修改数据的场景确保在修改过程中数据不会被其他事务读取或修改。 行锁的释放 无论是SHARE模式还是UPDATE模式的行锁都是在事务提交(commit)或事务回滚(rollback)的时候释放行锁。 行锁的等待 默认情况下对于没有获得行锁的事务需要一直等待行锁的释放这样可能会影响其他事务的执行。一种有效的处理方式是设置锁的等待策略。如指定等待时间、不等待、跳过锁定的数据等。MySQL不支持等待指定的时间(国产数据库OceanBase则支持设置行锁的等待时间示例如下SELECT … FOR UPDATE WAIT seconds)但支持设置不等待、跳过锁定的数据。示例语句如下 SELECT ... FOR UPDATE NOWAIT SELECT ... FOR UPDATE SKIP LOCKED注意以上能力是在MySQL 8.4版本及之后的版本才引入的功能。在使用的时候要注意当前使用的MySQL版本。如果是低版本的MySQL可以考虑在应用层做一些简单地处理。 行锁的超时时间 在MySQL中不支持针对每个行锁实例设置超时时间但是支持对所有的行锁设置超时时间对应的参数是innodb_lock_wait_timeout。这个参数决定了InnoDB在放弃获取锁之前等待的时间长度以秒为单位。如果在指定的时间内无法获取锁需要获取锁的事务将被回滚并返回一个错误。innodb_lock_wait_timeout 的默认值取决于 MySQL 版本。通常默认值是 50 秒。 行锁的超时设置示例如下 // 全局设置 SET GLOBAL innodb_lock_wait_timeout 30; -- 设置全局的超时时间为 30 秒 // Session设置 SET SESSION innodb_lock_wait_timeout 30; -- 设置当前会话的超时时间为 30 秒这样的话如果在指定时间范围内无法获取锁获取锁的事务将返回一个错误提示锁等待超时。 行锁使用总结 行锁的使用场景主要是用于需要实现细粒度锁控制的场景如高并发场景。InnoDB为提供了多种行锁的实现方式如记录锁(Record Lock)、间隙锁(Gap Lock)、临键锁(Next-Key Lock)等。需要说明的是行锁仅在使用索引字段时才会生效否则会升级为表锁。 在使用行锁时支持设置共享模式或排他模式。其中共享模式允许其他事务读操作不允许其他事务写操作注意共享模式也不支持当前事务写操作。排他模式不允许其他事务读操作不允许其他事务写操作。 行锁的释放都是在事务提交(commit)或事务回滚(rollback)的时候。 默认情况下对于没有获得行锁的事务需要一直等待行锁的释放这样可能会影响其他事务的执行。MySQL支持设置不等待(NOWAIT)、跳过锁定的数据(SKIP LOCKED)等选项来处理锁等待的情况。注意上述设置仅在MySQL 8.4及更高版本才支持。 此外可以为行锁设置超时时间。注意MySQL不支持针对每个行锁实例设置超时时间仅支持对所有的行锁设置超时时间对应的参数是innodb_lock_wait_timeout。innodb_lock_wait_timeout 的默认值取决于 MySQL 版本。通常默认值是 50 秒。这样的话如果在指定时间范围内无法获取锁获取锁的事务将返回一个错误提示锁等待超时。 参考 https://blog.csdn.net/winy_lm/article/details/48175885 oracle for update和for update nowait的区别 https://docs.pingcode.com/baike/2033002 mysql数据库如何加行锁 https://dev.mysql.com/doc/refman/8.4/en/innodb-locking-reads.html Locking Reads https://yiyan.baidu.com 文心一言
http://www.w-s-a.com/news/341920/

相关文章:

  • 平度那里有做网站的昆明建设招聘信息网站
  • 邯郸城乡建设部网站首页唐山市住房城乡建设部网站主页
  • 慕课联盟网站开发实战六安品牌网站建设电话
  • 制作企业网站首页贵州小程序制作开发
  • 什么是网站后台郑州众志seo
  • 做线上交互的网站分销平台
  • 培训机构网站开发江门cms模板建站
  • 网站描述模板建筑模型网站有哪些
  • 域名注册费用张家界seo
  • 淘宝联盟怎么自己做网站山西省住房与城乡建设厅网站
  • 最新网站建设常见问题使用微信推广的各种方法
  • 购物网站建设课程设计报告做木工的网站
  • 扶沟县网站开发网站建设在哪里进行
  • 查看网站服务器信息网站首页地址 网站域名
  • 网站网站制作网站的ui界面设计案例分析
  • 怎么查网站是否备案成都装修公司联系电话
  • 佛山免费发布信息的网站oa办公系统排行榜
  • 南湖区建设街道办事处网站汕头建设银行各支行电话
  • 复古风格网站网站套餐方案
  • 界面设计做的好的网站旅游商城网站模板
  • 大型电子商务网站 服务器硬件 cpu 内存 硬盘 2014美食网站开发意义
  • 建立网站的目的和意义网站建设寻求
  • 邢台手机网站建设设计师培训心得
  • 营销网站怎么做丽水微信网站建设哪家好
  • 南昌定制网站开发多少钱东阿县城市建设局网站
  • 浙江网站建设公司南昌seo招聘
  • 工业软件有哪些专业seo站长工具全面查询网站
  • 山东兴华建设集团有限公司网站和京东一样做电子产品的网站
  • 网站建设谢辞关于h5的网站模板
  • 网站改版提交WordPress360收录