原文地址:HybridDB · 性能优化 · Count Distinct的几种实现方式 HybridDB是阿里基于GreenPlum开发的一款MPP分析性数据库,而GreenPlum本身基于PostgreSQL. 如此,HybridDB的优化思路和手段难免会受到PostgreSQL影响和限制. 文中的语句最终优化得到了几个不同计划,其优化的语句简化后形如 select count(distinct c1) from t group by c2; 这条语句在HybridDB下实现: 每个服务器自…
零除的处理 用NULLIF(col, 0)可以避免复杂的WHEN...CASE判断, 例如 ROUND(COUNT(view_50.amount_in)::NUMERIC / NULLIF(COUNT(view_50.amount_out)::NUMERIC, 0),2) AS out_divide_in, 使用 COLA / NULLIF(COLB,0) 后, 如果 COLB 为0, 产生的输出就是 NULL GENERATED 字段, GENERATED..STORED 对于读多写少的表,…
前言:前几天没事干写了个小网站,打算用原生的javascript实现元素的拖动,但是事情并没有想象的那么顺利,首先是实现了拖动的元素卡的不能再卡,简直不能够,上图~~ 看见没?这就是效果,简直让人欲哭无泪啊,查了大量的资料也无济于事,根本就没有人会遇到过这个问题,但是经过N次试验,终于找到了原因——竟然是我给这个元素添加了transition属性导致的,元凶: 去掉这个属性之后,就变得完全不一样了 至于原因,我现在也不知道为什么,很无奈╮(╯▽╰)╭ 接下来就是性能优化了,我原来的实现方式是给元…
前言: 如果你是个前端开发人员,你肯定知道线上环境要把js,css,图片等压缩,尽量减少文件的大小,提升响应速度,特别是对移动端,这个非常重要.常用的前端性能优化方法有如下几种 一.减少http请求 二.CSS Sprites 三.使用oss及CDN加速 四 .css,js代码压缩 五.将样式表放在头部,将脚本放在底部 六   精简JavaScript,内存的管理,堆栈的释放 七   避免重定向 八  浏览器渲染页面原理,服务端渲染 九  客户端和服务端开启gzip 下面我们来着重讲一下gzip…
前言 在之前的文章 如何优化网站性能,提高页面加载速度 中,我们简单介绍了网站性能优化的重要性以及几种网站性能优化的方法(没有看过的可以狂戳 链接 移步过去看一下),那么今天我们深入讨论如何进一步优化网站性能. 一.拆分初始化负载 拆分初始化负载——听名字觉得高大上,其实不然,土一点将讲就是将页面加载时需要的一堆JavaScript文件,分成两部分:渲染页面所必需的(页面出来,没他不行)和剩下的.页面初始化时,只加载必须的,其余的等会加载. 其实在现实生产环境中,对于大部分网站:页面加载完毕(w…
在我当前所做的web项目中,采用前后端分离模式前端通过Django 提供restful接口,后端采用微服务架构,微服务之间的调用采用jsonrpc,由于微服务之间的调用很频繁,导致前端得到的响应很慢,所以就不得不做性能优化. JSON-RPC是一种基于JSON的跨语言远程调用协议.比xml-rpc.webservice等基于文本的协议传输数据格小:但是JSON格式的解析开销太大. GRPC:GRPC是一个高性能.通用的开源RPC框架,由Google主要面向移动应用开发并基于HTTP/2协议(注意…
[优化]COUNT(1).COUNT(*).COUNT(常量).COUNT(主键).COUNT(ROWID).COUNT(非空列).COUNT(允许为空列).COUNT(DISTINCT 列名) 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① COUNT(1)和COUNT(*)的区别(重点) ② 10046和10053的使用 ③ “SELECT COUN…
导读 在开发中一定会用到统计一张表的行数,比如一个交易系统,老板会让你每天生成一个报表,这些统计信息少不了 sql 中的count函数. 但是随着记录越来越多,查询的速度会越来越慢,为什么会这样呢?Mysql内部到底是怎么处理的? 今天这篇文章将从Mysql内部对于count函数是怎样处理的? 本文首发于作者微信公众号[码猿技术专栏]Mysql性能优化:为什么你的count(*)这么慢?,原创不易,喜欢的请支持一下,谢谢!!! count的实现方式 在Mysql中的不同的存储引擎对count函数…
注:在执行SQL语句前加上explain可以查看MySQL的执行计划 数据库:MySQL官方提供的sakila数据库 Max优化: 例如:查询最后支付时间 explain select max(payment_date) from payment \G; 询的类型为simple,没有用到任何索引,扫描行数为1万多行,用时0.02sec 优化方法: 在payment_date列建立索引 create index idx_paydate on payment(payment_date); 此执行结果…
SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数.很多人其实对这三者之间是区分不清的.本文会阐述这三者的作用,关系以及背后的原理. 往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Coun…