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

代理公司注册收费百度怎么优化关键词排名

代理公司注册收费,百度怎么优化关键词排名,wordpress删除草稿,wordpress连接数据时出错文章目录 数据库的隔离级别和锁机制一、数据库隔离级别1. 隔离级别说明2. 如何选择隔离级别3. 查询当前客户端隔离级别的命令.4. 修改隔离的命令 二、数据库中的锁1. 共享锁、排他锁2. 死锁3. 行级锁、表级锁 三、解决更新丢失问题1. 解决方案2. 乐观锁、悲观锁3. 乐观锁、悲观…

文章目录

  • 数据库的隔离级别和锁机制
    • 一、数据库隔离级别
      • 1. 隔离级别说明
      • 2. 如何选择隔离级别
      • 3. 查询当前客户端隔离级别的命令.
      • 4. 修改隔离的命令
    • 二、数据库中的锁
      • 1. 共享锁、排他锁
      • 2. 死锁
      • 3. 行级锁、表级锁
    • 三、解决更新丢失问题
      • 1. 解决方案
      • 2. 乐观锁、悲观锁
      • 3. 乐观锁、悲观锁的选择

数据库的隔离级别和锁机制

一、数据库隔离级别

1. 隔离级别说明

隔离级别是基于客户端来讨论的,不同的客户端在和服务器交互式可以有不同的隔离级别,客户端处在什么隔离级别就具有什么隔离级别的问题。mysql数据库的隔离级别一共有四种.

标志名称说明
read uncommitted读未提交不做任何隔离。可能产生脏读,不可重复读,虚读/幻读问题性能最好。
read committed读已提交一个事务可以读取到另一个事务已经提交的数据。可以防止脏读,但可能存在不可重复读,虚读/幻读问题,性能较好。
repeatable read可重复读取在查询整表数据时,一个事务可以读取到另一个事务已经提交的数据。可以防止脏读不可重复读问题,但可能存在虚读/幻读问题。mysql默认采用此隔离级别。性能一般。
serializable序列化通过锁进行严格隔离,对同一个数据的访问要串行化进行。可以防止脏读,不可重复读,虚读/幻读问题。但数据库处于串行化状态,效率极其低下。性能最差。

2. 如何选择隔离级别

1. 选择不同的隔离级别,就可以防止在并发读写的过程中的不同的隔离性问题,隔离级别设置的越严格,防止的问题就越多但性能就越低,隔离级别设置的越宽松,性能就越好但可能产生的隔离性问题就越多
2. 数据库使用者应该根据自己的需求选择一个合理的隔离级别,选择一个能够防止想要防止的问题的情况下性能尽量好的隔离级别。
3. 从可靠性角度:serializable > repeatable read -> read committed -> read uncommitted
4. 从性能角度:read uncommitted -> read committed -> repeatable read ->serializable
5. 在真正的开发中 脏读问题太严重,所以read uncommitted很少用。serializable性能太差,也很少用。所以只需根据是否需要防止不可重复读,在read committed 和repeatable read之间选择一个即可。在实际开发中 repeatable read用的跟多一些。

3. 查询当前客户端隔离级别的命令.

select @@tx isolation;

4. 修改隔离的命令

set[session/global] transaction isolation level 隔离级别名称;1. 可以通过选择[session]来指定修改的是当前客户端的隔离级别,mysql服务器默认的隔离级别不变。
2. 可以通过选择[global来指定修改的是mysl服务器默认的隔离级别,当前客户端隔离级别不变,默认不写就是[global)

二、数据库中的锁

1. 共享锁、排他锁

数据库也是用锁来保证数据隔离的,但是为了数据库的锁设计的更加精细。体现在数据库中的锁分为共享锁和排他锁

1. 共享锁和共享锁可以共存,共享锁和排他锁不能共存
2. 排他锁和任何锁都不能共存
3. 在非serializable隔离级别下,查询不加锁
4. 在Serializable隔离级别下,查询加共享锁。
5. 任意隔离级别下增删改加排他锁。

正是利用了这种锁机制,数据库保证了并发的读不隔离,并发的写一定隔离,并发的读写在某一方或多方为Serializable的级别时,实现串行化,保证完全可靠。

2. 死锁

多个客户端都是serializable的级别下,先查询再修改,可能会进入与相等待状态,其实就是发生了死锁,mysql会检测到死锁,自动退出一方以打断死锁。

3. 行级锁、表级锁

数据库的锁根据锁定的粒度可以分为行级锁和表级锁。行级锁锁一行。表级锁锁整表。数据库自动根据操作的数据决定加哪种粒度的

三、解决更新丢失问题

1. 解决方案

1. 修改隔离级别为Serializablea。将数据库的隔离级别设置为Serializable即可完全防止更新丢失问题但通常基于效率的考虑,数据库的隔离级别不会设置为Serializable.此时要选择其他的解决方案
2. 悲观锁、乐观锁。在非Serializable隔离级别下,可以使用悲观锁、乐观锁来解决更新丢失。悲观锁、乐观锁并不是数据库中真正存在的锁,仅仅是更新丢失问题解决方案的名字。这个名字体现了在解决更新丢失问题时的思考的角度。

2. 乐观锁、悲观锁

1. 悲观锁悲观的认为每次查询都会造成更新丢失,则在查询时手动加上排他锁,从而在查询阶段就避免同时查询,从而避免更新丢失。在select语句后加上for update就可以手动增加排他锁。
2. 乐观锁乐观的认为每次查询都不会造成更新丢失,每次都正常执行查询,但为了防止可能的更新丢失造成危害,通常都会在表中额外设计一个额外版本字段,每次更新时版本字段都自增,且每次更新操作中必须基于上一个版本才做更新从而避免更新丢失造成的危害。

3. 乐观锁、悲观锁的选择

1. 悲观锁的缺点是一查就锁,查询多是效率低下
2. 乐观锁的缺点是,在大量的并发修改时,很容易造成修改失败,极端的情况下可能需要失败很多次才能完成修改,
3. 查询较多,修改较少,用乐观锁
4. 修改较多,查询较少,用悲观锁
http://www.hkea.cn/news/60042/

相关文章:

  • 网站应用软件设计海口seo网络公司
  • 武汉站建设深圳网站开发制作
  • 网站建设的平台分析北京seo技术
  • 手表价格网站百度推广天津总代理
  • 如何将域名和网站绑定排名seo怎么样
  • 旅游网站推广方案色盲测试图
  • 现在开发个网站多少钱安全优化大师
  • 网站开发工程师工资多少百度统计工具
  • 征信报告优化大师好用吗
  • 一个ip地址做多个网站网络营销公司是做什么的
  • 赤峰网站建设公司旅行网站排名
  • seo网站优化工具软件拉新推广平台
  • 政府网站设计方案无锡网站制作优化
  • 社交网站盈利吗如何在各种网站投放广告
  • 建设工程合同民法典东莞快速优化排名
  • 泗县口碑营销互联网营销推荐咨询青岛seo计费
  • 做电影网站用什么服务器中文域名注册官网入口
  • 做网站那里好win10系统优化工具
  • 做外贸上哪些网站找客户口碑营销的概念是什么
  • 外贸建站magento百度地图推广
  • 做网站和管理系统全网热度指数
  • 网站的压力测试怎么做网络营销的目的是什么
  • 网站建设如何更加稳定seo优化前景
  • 网站速度诊断 慢seo chinaz
  • 企业网站建设合同搜索引擎优化关键词的处理
  • 做翻译的网站私人做网站
  • 广东两学一做考学网站百度网盘app免费下载安装老版本
  • 淄博有做网站的吗百度推广有哪些形式
  • 增值税怎么算免费seo快速排名系统
  • 响应式电商网站制作全网