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

请人做软件开发的网站b站引流推广网站

请人做软件开发的网站,b站引流推广网站,外贸网站推广公司最大,wordpress文章图片本地化开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(…

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(共2150人左右 1 + 2 + 3 + 4 +5) 新人直接分配到5群,另欢迎 OpenGauss 的技术人员加入。

最近写了一篇揭露人性的文章,被下架了,看来是写对了,的确是不适宜公开传阅了,我一点都不惊讶,很多事情只可意会,不能宣之于口.

f59687c53d4b747c5cd858fde7f5469d.png

话归正处,咱们今天继续说PostgreSQL ,对于PostgreSQL中的重要的功能实际上都是尤其是内部的一些功能本身,都是围绕着POSTGRESQL 的原理,MVCC 中UNDO 实现的方式而来的,如果你一直埋怨PG 不能按你心愿,那么你一定是没有理解他本身的设计原理。

ca3adef89e48b8cdad93e9c4aa440887.png

今天要说的就是基于PG的原理的 HOT UPDATE 和 FillFactor ,如果这两个理解了,并且对于fillfactor做好了,那么对于使用PG 会有良好的适用性。

HOT UPDATE,对于PG来说这是一个重要的功能,在我们理解来,表和索引是一体的,在更新表的数据的同时,索引里面的数据也会更新,当然如果要启动 heap only tuple 的这个功能,是要特定的条件的。

1  更新的数据必须与原来的这行数据在一个页面内,这是启动数据更新heap Only Tuple 的前提。

2   要完成这个前提,对于POSTGRESQL的表设计中的 fillfactor要有认知和好的设计,这可和 mysql 那样的数据库的简单实用的思路不一样了。

下面我们说说根因,

为了实现高并发,PG实用了多版本并非控制,来存储行,对于UPDATE来说有一个问题,更新行需要不是在原有的位置来修改,而是插入新的行,这就需要为每个更新的行添加新的索引条目,那么必然索引中的对于原有行的指向是要变动的,这就会导致这个操作很复杂,导致我们的操作变得比较“贵”

为了解决这个问题,提出了HOT heap-Only-Tuples , 通过这样的方式来减少在进行数据行的更新后,新的索引行的产生情况。我这里大致画一个简图来说明这样操作后的好处是什么。

76d65fef7c47427eef94230ac02ab612.png

为了大家看清楚,将上图拆分在进行粘贴

2ad6ad28e20921178275be54dea523cc.png

9bbb99369fc473f1152a864122bc402e.png

从上图我们可以很清楚的看到,图一为更新数据前的,图2为更新数据后,因为更新数据后,会直接插入一行,所以第二张图就会将原有的数据行的位置进行标记,然后在新的位置插入更新后的数据行,这里可以注意,因为使用了 HOT,所以索引1 的指针还是没有变化而,变化的仅仅是指针1 将自己的指针指向了指针3.

以前读取数据是 索引1 ---指针1---数据 1, 现在的读取的方式是索引1--指针1--指针3--数据1.

因这样的方式仅仅变动的是业内的指针重定向,所以这个样的方式相对于修改索引1的指针指向指针3 要方便的多,节省了大量的数据处理的资源。

那么说到这里,如果要满足这样的操作必须保证更新后的行和被更新的行在一个页面内,才可以进行此操作,如果是下面的情况那么HOT无法进行工作的,下图展示的是由于原有更新行的数据并为插入到原有的数据页面中,而是插入到了新的页面中,所以索引必须指向新的位置,而不能再指向原有的页面了。

386a6c9b9e3930b9e136fdb85eb1ae12.png

所以说到这里,要保证一个页面可以容纳UPDATE后,还写入本页的插入的数据的方法里面,必须有保证原有页面内的空间有冗余,这也就谈到我们说的第二个问题 fillfactor. 填充率。

对的填充率,填充率在POSTGRESQL中尤其的重要,对于一个在PG里面经常被UPDATE的表,fillfactor 在首次填充率一般都不建议超过85%。当然这样操作后的后果是,数据页面在第一次的插入后,会保留15%的空间,者就导致这样的数据页面比100%填充的页面要浪费15%的空间。

那么这里,空间换时间,时间换空间的道理,在POSTGRESQL HOT, Fillfactor 里面又再次的应验了。

postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# SELECTrelname AS table_name,seq_scan AS sequential_scans,idx_scan AS index_scans,n_tup_ins AS inserts,n_tup_upd AS updates,n_tup_hot_upd AS hot_updates
FROMpg_stat_user_tables
ORDER BYhot_updates DESC;table_name | sequential_scans | index_scans | inserts | updates | hot_updates 
------------+------------------+-------------+---------+---------+-------------test_data  |               14 |           4 |      16 |       6 |           6test       |                0 |             |       0 |       0 |           0
(2 rows)

最后是如何你来查看你的表中设置的fillfactor是对的,用上面的语句来去查看你的表中 hot_updates的次数,和UDPATE的次数的对比,也可以算一个百分比,即可。

ALTER TABLE your_table SET (FILLFACTOR = 80);

修改一个表的填充率也很简单,直接对于这个表即刻进行填充率的修改,当然这仅仅是对这个表中新加的页面生效。

Adjournment

de441d4b2ebcd0c573b6090e1e15541a.png

http://www.wangmingla.cn/news/126132.html

相关文章:

  • 有了自己的网站怎么赚钱百度收录方法
  • 上海网站推广哪家好网络软文营销
  • 怎么做网站免费企业网站推广的方法
  • 织梦可以放两个网站百度网盘网页版
  • 陶瓷网站模板网站收录申请
  • 网站建设网址网站推广优化c重庆
  • 网站研发公司如何让百度搜索排名靠前
  • 外贸网站分类大连seo外包平台
  • 公司做外贸网站百度平台客服电话
  • 微信网站建设多少钱淘宝指数在哪里查询
  • 二手网站专业做附近人的有吗百度今日排行榜
  • 网站建设基本流程ppt百度百科分类方法
  • 广州网站程序开发搜索引擎优化的核心是
  • 企业网站设计html代码个人网站该怎么打广告
  • 有关做聚合物电池公司的网站如何建网站赚钱
  • 国内十强少儿编程机构seo从零开始到精通200讲解
  • 0元建站平台网址之家
  • wordpress添加下载文件郑州企业网站seo
  • 海外推广代理公司优化大师官方网站
  • 个人域名 公司网站公司网站的推广方案
  • 推荐武进网站建设广州网站优化
  • 小米官方网站开发版网店怎么推广和宣传
  • 2014网站推广方案移动网站优化排名
  • 企业网站的建设有哪些经典问题网络优化公司哪家好
  • ecs搭建网站潍坊网站排名提升
  • 东莞网站设计制作公司今日国内重大新闻事件
  • 自学设计的网站网站开发公司哪家好
  • 制作网站的要素seo网站优化软件价格
  • 代替 wordpress超级优化空间
  • 做网站建设专业定制如何网络媒体推广