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

营销型网站的建设和运营吉林省软环境建设网站

营销型网站的建设和运营,吉林省软环境建设网站,建设一个网站需要做哪些工作内容,黑龙江省建设厅的网站1. 事务隔离级别和MVCC 1.1 事务并发执行时的一致性问题 #xff08;1#xff09;脏写 事务修改了另一个未提交事务修改过的数据#xff1b; 这里的一致性是#xff1a;假设每个事务都遵守将变量 x 和 y 始终设置为相同值#xff0c;操作序列如下所示#xff1a; T1…1. 事务隔离级别和MVCC 1.1 事务并发执行时的一致性问题 1脏写 事务修改了另一个未提交事务修改过的数据 这里的一致性是假设每个事务都遵守将变量 x 和 y 始终设置为相同值操作序列如下所示 T1(x 1)、T2(x 2)、T2(y 2)、T1(y 1)、C1、C2 事务提交后x 2y 1 并不满足一致性要求 在发生回滚时也会影响原子性和持久性例如假设 x 和 y 初始值为 0 T1(x 1)、T2(x 2)、T2(y 2)、C2、A1 T1 修改 x 时会记录旧值 0T1 进行回滚时会将 x 恢复为 0但 T2 中也修改了 x 就会造成部分回滚的情况不回滚 y违背原子性如果都回滚的话 T2 已经提交违背持久性的要求。 2脏读 事务读取了另一个未提交事务修改过的数据 3不可重复读 一个事务修改了另一个事务读取过的数据 4幻读 一个事务先根据某些搜索条件查询一些记录在该事务未提交时另一个事务写入了一些符合前述搜索条件的数据增删改操作 1.2 MySQL 设置隔离级别 SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL level; 不写 GLOBAL 或者 SESSION 只对执行 SET 语句后的下一个事务产生影响下一个事务执行完后后续事务恢复到之前的隔离级别不能在已经开启的事务中执行会报错。 1.3 ReadView 对 READ UNCOMMITTED 直接读取记录最新的记录即可 对 SERIALIZABLE 使用加锁的方式来访问记录 对 READ COMMITTED 和 REPEATABLE READ 来说需要保证读取的记录都是已经提交事务修改的记录通过使用 ReadView 保证。 m_ids生成 ReadView 时当前系统中活跃的读写事务的事务 id 列表min_trx_id生成 ReadView 时当前系统中活跃的读写事务的中 最小的事务 id m_ids 中的最小值max_trx_id生成 ReadView 时系统应该分配给下一个事务的事务 id 值 注意max_trx_id 并非 m_ids 中的最大值因为可能事务 id 较大的事务已经提交了id 为 3 的事务提交了当前活跃的为 1 和 2。creator_trx_id生成该 ReadView 的事务的事务 id 如果被访问版本的 trx_id 与 ReadView 中的 creator_trx_id 相同则表明当前事务正在访问它自己修改过的记录可见 如果被访问版本的 trx_id 小于 ReadView 中的 min_trx_id 表明生成该版本的事务在当前事务生成 ReadView 前已经提交可见 如果被访问版本的 trx_id 大于等于 ReadView 中的 max_trx_id表明生成该版本的事务在当前事务生成 ReadView 后才开启不可见 如果被访问版本的 trx_id 大于等于 min_trx_id 并小于 max_trx_id判断 trx_id 是否在 m_ids 列表中如果在不可见否则可见。 1READ COMMITTED 隔离级别下每次读取数据前都会生成一个 ReadView 2在 REPEATABLE READ 隔离级别下第一次读取数据时生成一个 ReadView START TRANSACTION WITH CONSISTENT SNAPSHOT 语句开启事务会立即生成一个 ReadView。 1.4 二级索引与 MVCC 二级索引页面的 Page Header 部分有一个 PAGE_MAX_TRX_ID 的属性记录了修改该二级索引页面的最大事务 id当 SELECT 语句访问某个二级索引时首先判断 ReadView 的 min_trx_id 是否大于 PAGE_MAX_TRX_ID若大于则该页面的所有记录都对该 ReadView 可见否则需要进行回表后再判断可见性。 利用二级索引的主键进行回表找到对该 ReadView 可见的第一个版本判断该版本中相应的二级索引列的值是否与二级索引查询时的值相同若是返回WHERE 中若有其他条件还需继续判断其他条件否则接着沿着版本链判断。 1.5 关于 purge 1当一个事务提交后会把这个事务执行过程中产生的一组 update undo log 插入到 History 链表头部。 每个回滚段都有一个 History 链表 2为了支持 MVCC delete mark 仅仅设置一个标志位并没有真正删除 3何时进行 purge 在事务提交时会为该事务生成一个名为 trx_no 的值表示事务提交的顺序 一组 undo log 中对应的 Undo Log Header 部分有一个属性 TRX_UNDO_TRX_NO当事务提交时记录了事务的 trx_no History 链表是根据事务提交顺序来存放各组 undo log 的 生成 ReadView 时还会包含一个 trx_no 属性表示当前系统中最大的 trx_no 1 赋给该值。 用来表明生成该 ReadView 时哪些事务已经提交 InnoDB 把当前系统中所有的 ReadView 按照创建时间连成一个链表当执行 purge 操作时就把系统中最早生成的 ReadView 取出来如果没有则新创建一个 ReadView 然后从各回滚段的 History 链表取出 trx_no 较小的各组 undo log如果该组日志的 trx_no 小于 ReadView 中的 trx_no就会释放该组日志如果该组日志包含因 delete mark 操作产生的 undo log也要把相应记录真正删除。 2. 锁 1锁结构 trx 信息该锁结构与哪个事务关联 is_waiting当前事务是否在等待 获取锁成功或者加锁成功在内存中生成了与该记录对应的锁结构而且该锁结构的 is_waiting 属性为 false 加锁失败在内存中生成了与该记录对应的锁结构而且该锁结构的 is_waiting 属性为 true 不加锁不需要在内存中生成对应的锁结构可以直接执行操作 2.1 写操作 1DELETE先在 B 树中定位这条记录的位置获取记录的 X 锁获取 X 锁的锁定读执行 delete mark 操作 2INSERT一般情况下新插入的一条记录受隐式锁保护不需要在内存中生成对应的锁结构 3UPDATE 不修改主键且被更新的各个列占用存储空间与之前相同 未修改主键且至少有一个被更新的列占用存储空间与之前不同 修改主键相当于在原纪录上执行 DELETE 操作后再来一次 INSERT 操作加锁操作需要按照 DELETE 和 INSERT 的规则进行。 2.2 MySQL 中的行锁和表锁 MyISAM、MEMROY 这些存储引擎一般支支持表级锁而且一般都是针对当前会话来说的因此最好用在只读场景下。
http://www.zqtcl.cn/news/715251/

相关文章:

  • 网站运营知识哪个网站可以做免费商业推广
  • 电脑做网站怎么解析域名河南郑州静默管理
  • 项目网站制作冯提莫斗鱼前在哪个网站做直播
  • 网站建设 思路wordpress 访问记录插件
  • 网站建设diyseo课程培训班费用
  • 舞蹈培训东莞网站建设做直播网站
  • app建设网站公司网站制作预算
  • 移动端网站如何开发市辖区郑州网站建设
  • 山东省双体系建设网站wordpress 帮助 主题
  • 手机怎么做三个视频网站网站建设协议一百互联
  • 创建一个网站一般步骤有哪些安徽软件定制开发
  • 网站建设平台协议书模板下载佳木斯建网站的
  • 部队网站建设招标二级域名注册平台
  • 做网站怎么调用栏目织梦搞笑图片网站源码
  • 开个小网站要怎么做南宁seo外包服务商
  • 济宁做网站的企业app网站开发学习
  • 哪个网站可以做危险化学品供求html静态网站作品
  • 豪圣建设项目管理网站创建网站的视频
  • 网站做接口自己做的网站只能用谷歌浏览器打开
  • 建设网站具体步骤python 做 网站
  • 网站源代码怎么上传wordpress标题字体大小
  • 营销型网站哪家好网页设计一张多少钱
  • 怎么搭建购物网站山东德州网站建设
  • 网站 404 错误页面是否自动跳转太原网站建设王道下拉惠
  • 美仑-专门做服装的网站淘宝详情页制作
  • 网站商城制作策划公司组织结构图
  • 商务网站建设教程企网
  • 北京做网站推广多少钱丽水网站建设公司排名
  • 淄博网站关键词优化安丘网站建设公司
  • 教育建设网站wordpress 创建模板文件