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

推广是什么seo引擎搜索

推广是什么,seo引擎搜索,wordpress萌主题下载地址,余杭区高端网站建设为了确保复杂的事务可以安全地同时运行,PostgreSQL提供了各种级别的锁来控制对各种数据对象的并发访问,使得对数据库关键部分的更改序列化。事务并发运行,直到它们尝试获取互相冲突的锁为止(比如两个事务更新同一行时)。当多个事务同时在数据…

       为了确保复杂的事务可以安全地同时运行,PostgreSQL提供了各种级别的锁来控制对各种数据对象的并发访问,使得对数据库关键部分的更改序列化。事务并发运行,直到它们尝试获取互相冲突的锁为止(比如两个事务更新同一行时)。当多个事务同时在数据库中运行时,并发控制是一种用于维持一致性和隔离性的技术,在PostgreSQL中,使用快照隔离Sanpshot Isolation (简称SI) 来实现多版本并发控制,同时以两阶段锁定 (2PL) 机制为辅。在执行DDL时使用2PL,在执行DML时使用SI

         在PostgreSQL中,最主要的是表级锁与行级锁,此外还有页锁、咨询锁

常用概念

系统锁与事务锁

原子操作:PostgreSQL为了支持无锁编程,提供了系列的原则操作,包括内存屏障,CAS(Compare And Swap),TAS(Test And Set)等

自旋锁(Spin lock):是一种和硬件结合的互斥锁,它借用了硬件提供的原子操作原语来对一些共享变量进行封锁,通常适用于临界区比较小的情况

轻量锁(Lightweight lock):PostgreSQL中进程需要对共享内存进行频繁的读写操作,轻量锁主要是保护这些共享内存中的数据结构。它是一种读写锁,有共享排它两种模式

常规锁(Regular lock):对数据库对象加锁,PostgreSQL两阶段锁就是借助常规锁实现的。根据封锁对象的不同,他有分成了不同粒度,如对表、页面、元祖、事务ID等分别加锁。已最常见的表锁为例,当不同的事务操作一个表时,会尝试通过表的Oid来构造LockTag,这样每个数据库对象都会有一个唯一标识,然后根据这个唯一的标识到锁表中申请锁。postgreSQL数据库将常规锁分层了8个不同的等级,不同的操作需要使用不同等级的常规锁。

常规锁的级别

锁模式说明
AccessShareLock(1)当对一个对象进行查询(select)操作,会申请该类型的锁,该锁是最低级别的锁,相当于读写锁中的共享锁
RowShareLock(2)当查询指定FOR UPDATE/SHARE时,会申请该类型的锁
RowExclusiveLock(3)当对数据对象做增删改操作是,会申请该类型的锁,INSERT、DELETE、UPDATE
ShareUpdateExclusiveLock(4)VACUUM(non-FULL)、ANALYZE、CREATE INDEX CONCURRENTLY, ALTER TABLE
ShareLock(5)主要用于创建索引时申请该类型的锁, CREATE INDEX
ShareRowExclusiveLock(6)和ExclusiveLock相似,但和RowShareLock兼容。
CREATE TRIGGER, ALTER TABLE
ExclusiveLock(7)和AccessExClusiveLock类似,但和最低级别的读锁AccessShareLock兼容
AccessExclusiveLock(8)在对元数据(系统表)做DDL操作时,会申请该类型的锁,AccessExclusiveLock与其他所有的锁模式都不相容
DROP,TRUNCATE,VACUUM FULL, LOCK TABLE

两阶段锁

对象锁

对象锁是在共享内存中的,受到两个参数值的限制:max_locks_per_transaction×max_connections

对象锁可以通过pg_locks这个视图来查询

 

SELECT 
l.pid,
a.datname AS database,
c.relname AS table,
l.mode AS lock_mode,
l.granted AS granted,
a.usename AS username,
a.query AS query
FROM 
pg_locks l
JOIN 
pg_stat_activity a ON l.pid = a.pid
JOIN 
pg_class c ON l.relation = c.oid

       如果资源已经锁定在不兼容的模式中,那么试图获取锁的事务将排队等待,直到释放锁。等待事务不消耗处理器资源:涉及的后端进程«休眠»,当资源空闲时被操作系统唤醒

对象类型

  • relation
  • transactionid/virtualxid
  • tuple
  • extend
  • object
  • page
  • advisory

对象级别的锁

行锁

行锁是如何实现的?

问题

HeapTupleSatisfiesMVCC中的HEAP_IS_LOCKED是干什么的?

为什么HEAP_IS_LOCKED就返回true?

调用栈

  • HEAP_XMAX_SHARED_LOCK
  • HEAP_XMAX_EXCL_LOCK
  • heap_lock_tuple
  • ExecLockRows

heap_lock_tuple的逻辑

  1. HeapTupleSatisfiesUpdate:
    HeapTupleBeingUpdated:已插入,正在被修改,还没有提交。
    多个事务在lock元组,而且至少有一个在运行
    仅仅有一个事务在修改元组,但还没有提交
  2. 拿锁,修改pg_multixact, 修改flag, 放锁

tuple锁

PostgreSQL中的行锁

转载文章:PostgreSQL中所的锁 - 知乎

http://www.yidumall.com/news/65675.html

相关文章:

  • 网站后台打不开的原因网络营销的基本方法
  • 找郴州一家做网站的公司电话开发软件app需要多少钱
  • jsp写的网站太原关键词排名推广
  • 做熊猫tv网站的目的如何做品牌推广方案
  • cms网站开发毕设域名查询seo
  • 网站推广页面 英语网络营销发展方案策划书
  • 做什麽网站有前景淘宝客推广
  • 文章网站是怎么做的网络营销的理解
  • 网站为什么打不开网络推广方法怎么样
  • 有没有做美食的网站公司做网络推广怎么做
  • 扶贫办网站建设seo 公司
  • 网站开发语言介绍东莞关键词排名优化
  • 国外建站网址发布软文广告
  • 管理网络的应用软件一键优化是什么意思
  • 安平县哪里做网站想建立自己的网站
  • 政府网站集约化建设能做什么如何推销产品给客户
  • 珠海网站建设公司有哪些seo是什么意思中文
  • 温州微网站制作公司哪家好潍坊百度seo公司
  • 商贸公司网站模板网络营销师培训费用是多少
  • 哪些网站有好的营销案例网络营销广告名词解释
  • 永康公司网站开发网络营销怎么推广
  • 广西柳州网站制作公司百度下载app安装
  • 网站备案详细流程排名优化百度
  • 提高asp.net网站安全性百度建站
  • 公司网站域名实名认证怎么做模板建站平台
  • 如何识别一个网站是否做的好中国科技新闻网
  • 在线做GO分析的网站中国站长素材网
  • 网站实现隶书繁体百度科技有限公司
  • 快站app制作教程营销方式和渠道有哪些
  • 建设网上商城网站软文推广广告