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

网站首页搜索功能的id怎做wordpress 5.2必须php7

网站首页搜索功能的id怎做,wordpress 5.2必须php7,在手机上编写安卓app,免费com网站域名注册PostgreSQL后续简称PG。PG只读事务不会分配事务ID。为了在共享锁等情况下对事务进行标识#xff0c;需要一种非持久化的事务ID#xff0c;即虚拟事务ID#xff0c;vxid。虚拟事务ID不需要把事务ID持久化到磁盘。因为事务ID是很宝贵的资源#xff0c;简单的select语句不会申…PostgreSQL后续简称PG。PG只读事务不会分配事务ID。为了在共享锁等情况下对事务进行标识需要一种非持久化的事务ID即虚拟事务IDvxid。虚拟事务ID不需要把事务ID持久化到磁盘。因为事务ID是很宝贵的资源简单的select语句不会申请事务ID。vxid由两部分组成backendId 和backend本地计数器。查看如下 BEGIN; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks; -- 查看vxid SAVEPOINT p1; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks; -- 子事务的vxid不变 ROLLBACK; SELECT locktype,virtualxid,virtualtransaction,mode FROM pg_locks;vxid的backendId不是真正的进程号PID也只是一个简单的递增的编号。vxid的backendId和命令编号都是递增的。子事务没有自己的vxid他们用父事务的vxid。vxid也有回卷不过问题不严重因为没有持久化实例重启后vxid从头开始计数。 永久事务是指当发生数据变化的事务开始时事务管理器会分配一个唯一事务号标识。后续事务指永久事务。事务号Transaction IDtxid又叫xid是32位无符号整型总共可以存储 232429496729642亿多个事务范围为0~232-1。同一个数据库中存在的最旧和最新事务之间的年龄允许最大为2的31次方约为20亿。其中xid 0InvalidXid无效事务ID。1BootstrapXid表示系统表初始化时的事务ID。最旧。2FrozenXid冻结的事务ID比任何普通的事务ID都旧。 正常事务号从3开始。在PostgreSQL 7.2之前当32位事务ID用完时必须dump然后恢复数据库。之后使用64位I的FullTransactionId获取epoch和xid如下 #define EpochFromFullTransactionId(x) ((uint32) ((x).value 32)) #define XidFromFullTransactionId(x) ((uint32) (x).value)epoch是FullTransactionId右移32位xidTransactionId是FullTransactionId对232取模。这相当于把32位的TransactionId看成“环”循环重复使用64位的FullTransactionId是一直递增的“线”几乎取不完。事务启动后会执行内置txid_current函数该函数会在上次事务加1后返回事务号。 -- PG12及以前用txid_current()。返回的为扩展xiduint64。 SELECT pg_current_xact_id(); SELECT pg_current_xact_id_if_assigned(); -- 返回当前事务id-- 查看系统初始化时的事务ID SELECT xmin,count(*) FROM pg_class WHERE xmin1 GROUP BY xmin;SHOW TRANSACTION_ISOLATION; -- 查看事务隔离级别默认read committed读已提交-- begin不会立即分配事务idbegin后的第一个非查询语句分配事务id -- 当一个事务插入了一tuple后会将事务的txid写入这个tuple的xmin BEGIN; -- 开启事务 INSERT INTO t_test VALUES(1),(2); SAVEPOINT my_save; -- 设定事务保存点 INSERT INTO t_test VALUES(3); ROLLBACK TO my_save; -- 回滚到保存点状态即不要3这个数字 COMMIT; -- 提交后只有1,2事务ID对比的函数结构如下 bool TransactionIdPrecedes(TransactionId id1, TransactionId id2) {/** If either ID is a permanent XID then we can just do unsigned* comparison. If both are normal, do a modulo-2^32 comparison.*/int32 diff;if (!TransactionIdIsNormal(id1) || !TransactionIdIsNormal(id2))return (id1 id2);diff (int32) (id1 - id2);return (diff 0); }函数的基本逻辑为 TransactionIdIsNormal是判断id是否3(FirstNormalTransactionId)。id1-id2结果溢出即超过数据存储范围为使在范围内对数值加减模长232比如231减模长为-231。非正常事务比较当id12id2100时return(2100)结果为真正常事务较新当id1100id22时return (1002)结果为假正常事务较新。正常事务比较当id123199id2100id1-id2231-1。int32可以存放大txid较新当id1231100id2100id1-id2231。超出int32范围值为231-232-231小txid较新相当于看不到id2当id1100id2231100id1-id2-231。这没问题int32刚好可以存放大txid较新当id1100id2231101id1-id2-231-1。超出int32范围此时的值为-231-1232231-10小txid较新此时进入第1次回卷即100大于231101了。为了防止出现两者相差231或231-1将两者差值限制在20亿。这样可以保证提前处理冻结防止出现4的错误情况。 上面比较看出当发生数值溢出时txid大的事务看不见更小的txid事务。为了解决这个问题pg将40亿事务id分成两半一半事务是可见的另一半事务是不可见的。 事务回卷的理解包括两个方面 事务ID回卷是为了让事务ID有一个环的概念这一圈用完了继续向前转继续循环使用。每到达最大值232之后事务ID从下一个3开始只是事务ID的扩展epoch加1。因为事务ID将环分成2半一般可见一般不可见。事务ID跨越超过一半说明事务ID就是回卷了此时超过一半的那部分事务数据虽然存在但无法查到等效于丢失了。为了解决这个问题需要处理冻结事务ID的操作。保证事务ID不超过21亿具体是231-1。冻结的事务ID都是可见的。 为了解决上面2的回卷问题PG采用冻结的方式处理事务ID相关配置参数 vacuum_freeze_min_age元组xmin比当前txid-该参数值的差更旧时会进行freeze也就是有元组年龄或表年龄超过该值后进行freeze。该参数最大值为20亿最小值为2亿。vacuum_freeze_table_age表的年龄超过该值会进行aggressive vacuum。该参数最大值为20亿最小值为1.5亿。如果为0则每次扫描表都进行aggressive vacuum。autovacuum_freeze_max_age表的年龄超过该值强制执行autovacuum。该参数最小值为2亿最大值为20亿。即经过autovacuum_freeze_max_age-vacuum_freeze_min_age的txid增长之后表肯定会被强制进行一次freeze。因为autovacuum_freeze_max_age最大值为20亿所以在两次freeze之间txid的增长肯定不会超过20亿这就保证了上文中所说的20亿原则。 每次表被freeze之后会更新pg_class.relfrozenxid列为本次freeze的最大txid。该列保存对应表最近冻结的txid意味着小于此值的txid均已被冻结。表的年龄为当前最新txid与relfrozenxid的差值。元组年龄其t_xmin与对应表relfrozenxid的差值。
http://www.w-s-a.com/news/939612/

相关文章:

  • 天津做网站的网络公司wordpress免费的模板
  • 有哪些关于校园内网站建设的法律如何申请免费网站空间
  • 玉溪市网站建设龙口网页定制
  • 网站开发都用什么软件上海景观设计公司10强
  • 网站建设氵金手指下拉十二深圳网站建设售后服务
  • 上海网站设计价青海企业网站制作
  • 静态网站做新闻系统深圳外贸网站建设哪家好
  • 网站如何做词360免费wifi老是掉线怎么办
  • 网站建设分金手指排名十八iis10 wordpress
  • 成都网站优化公司哪家好网站建设帮助中心
  • 做外单什么网站好佛山市建设企业网站服务机构
  • 哪些网站是单页面应用程序北京门头沟山洪暴发
  • 织梦(dedecms)怎么修改后台网站默认"织梦内容管理系统"标题关键词优化收费标准
  • 网站设计和备案企业官网网站建设免费
  • 公司概况-环保公司网站模板搜索引擎营销的基本流程
  • 门户网站建设经验天津市建设银行租房网站
  • 百度推广 帮做网站吗怎样修改网站的主页内容
  • 网站怎么做dns解析公司官网改版方案
  • 湛江市住房和城乡建设局网站杭州网站公司哪家服务好
  • 设计网站公司湖南岚鸿设计镜像的网站怎么做排名
  • 你注册过哪些网站微信app下载安装官方版2019
  • 杭州滨江的网站建设公司人才招聘网网站策划方案
  • 门户网站是指提供什么的网站网站优化需要工具
  • 和小男生做的网站代理公司注册步骤
  • 天猫网站建设的目标是什么seo有些什么关键词
  • 网站前端建设都需要什么莱芜信息港网页
  • 如何做360网站优化网站建设培训教程新手入门到精通
  • 做网站有的浏览器怎么做网站网站赚钱
  • 织梦 做网站 教程百度登录个人中心官网
  • ftp怎么修改网站wordpress分享积分