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

建站好的公司鞍山网上制作网站

建站好的公司,鞍山网上制作网站,长治建设工程交易网,南宁网站推广营销一、LOCALE 与 “operator class” 在PostgreSQL里#xff0c;LOCALE默认使用C的本地化规则。LOCALE是一种文化偏好的区域设置#xff0c;包括字母表、排序、数字格式等。 LOCALE里有一个比较重要的规则LC_COLLATE#xff0c;即排序方式(Collation)#xff0c;它会对数据…一、LOCALE 与 “operator class” 在PostgreSQL里LOCALE默认使用C的本地化规则。LOCALE是一种文化偏好的区域设置包括字母表、排序、数字格式等。 LOCALE里有一个比较重要的规则LC_COLLATE即排序方式(Collation)它会对数据库行为有显著影响。 当数据库里运行一个like查询DB上使用非C LOCALE普通索引可能不支持like操作普通索引创建时我们通常不会显式指定operator class示例如下 CREATE INDEX ON users (email);那下面like查询的执行计划可以看到走全表扫描。 postgres# EXPLAIN SELECT * FROM users WHERE email LIKE lukas%;QUERY PLAN -------------------------------------------------------------------------Seq Scan on users (cost10000000000.00..10000000001.26 rows1 width4463)Filter: ((email)::text ~~ lukas%::text) (2 rows)如果进行引导明确使用文本模式操作符text_pattern_ops。 CREATE INDEX ON users (email text_pattern_ops);那下面的执行计划可以看到也能正常使用索引。 postgres# EXPLAIN SELECT * FROM users WHERE email LIKE lukas%;QUERY PLAN --------------------------------------------------------------------------Index Scan using users_email_idx on users (cost0.14..8.16 rows1 width4463)Index Cond: (((email)::text ~~ lukas::text) AND ((email)::text ~~ lukasA::text))Filter: ((email)::text ~~ lukas%::text) (3 rows)二、Trigger 与 Transition Table trigger触发器通常以串行方式工作例如下面为了提高item大表count总数的性能使用触发器更新随时将总数更新到sum表便于快速统计。 CREATE TABLE item (id bigint GENERATED ALWAYS AS IDENTITY,value bigint NOT NULL );CREATE TABLE sum (total bigint NOT NULL );INSERT INTO sum VALUES (0);CREATE FUNCTION add_to_sum() RETURNS triggerLANGUAGE plpgsql AS $$BEGINUPDATE sum SET total total NEW.value;RETURN NEW; END;$$;CREATE CONSTRAINT TRIGGER add_to_sumAFTER INSERT ON itemDEFERRABLE INITIALLY DEFERREDFOR EACH ROWEXECUTE FUNCTION add_to_sum();但是如果item表有比较频繁的批量操作尤其还在一个事务里会引起dead tuple回收不及时那基于触发器统计更新数据会变得越来越慢。 此时使用触发器的transition table过渡表特性在内存中批量处理性能提升会比较明显。 DROP TRIGGER add_to_sum ON item;CREATE OR REPLACE FUNCTION add_to_sum() RETURNS triggerLANGUAGE plpgsql AS $$BEGINUPDATE sum SET total total (SELECT sum(value) FROM new_rows);RETURN NULL; END;$$;CREATE TRIGGER add_to_sumAFTER INSERT ON itemREFERENCING NEW TABLE AS new_rowsFOR EACH STATEMENTEXECUTE FUNCTION add_to_sum();三、Case 与 Filter 在PostgreSQL的聚合函数中可以使用CASE或FILTER来过来数据 查询一使用case SELECTfa.actor_id,SUM(CASE WHEN rating R THEN length END),SUM(CASE WHEN rating PG THEN length END) FROM film_actor AS fa LEFT JOIN film AS f ON f.film_id fa.film_id GROUP BY fa.actor_id查询二使用filter SELECTfa.actor_id,SUM(length) FILTER (WHERE rating R),SUM(length) FILTER (WHERE rating PG), FROM film_actor AS fa LEFT JOIN film AS f ON f.film_id fa.film_id GROUP BY fa.actor_id上面的两个查询功能是一样的有人在docker运行PostgreSQL 15的环境测试对比使用CASE语法会有8%的性能损失。FILTER的性能更好且语法更简洁。
http://wiki.neutronadmin.com/news/434018/

相关文章:

  • 电子商务网站建设html免费做h5的网站知乎
  • 做网站用什么比较好免费创建一个网页
  • 云梦建站设计网名的软件
  • 网站建设一般满足什么需求广铁建设集团门户网站
  • 安阳网站设计哪家专业视觉设计包括
  • 做lt行业的人让我登网站无锡网络推广运营公司
  • wordpress标题图片做神马网站优化快速
  • 网站建设网站系统选择网站不收录怎么解决
  • 威海网站开发视觉中国网站
  • 机票网站建设公司好求生之路2怎么做非官方网站
  • 网站集群 建设方案网站如何做线下的市场推广
  • 温州网上推广什么网站好抖音带运营给客户带来怎么样收益
  • 企业网站建设必要性网站用户细分
  • 企业的网站维护建设局网站打不开是什么原因
  • 二手车网站建设意见网站建设尾款结算申请
  • 舟山市建设工程质量监督站网站营销型网站建设怎么收费
  • 网上电影网站怎么做的广西建设职业技术学校官方网站
  • 宁波网站建设制作多少钱百度投票人气排行榜入口
  • 网站seo诊断评分63黑马深圳网页设计
  • 网站培训公司浙江高端网站建设公司
  • 高端大气的网站首页在哪里可以做自己的网站
  • 渠道合作一站式平台html网站开发开题报告范文
  • 企业开源网站系统张家港外贸网站建设
  • 免费公司网站申请网络营销导向企业网站建设的原则包括
  • 网站建设设计的流程建什么类型网站好
  • 深圳建站费用淮安网络营销
  • wordpress 视频网站如何写一个自己的网站
  • 哪几个网站做acm题目比较好成都官网seo服务
  • 淘宝商家网站建设做博客和做网站
  • wdcp备份网站站长工具whois查询