关于pgsql 几个操作符的效率测试比较
关于pgsql 几个操作符的效率测试比较
1. json::->> 和 ->>
测试方法:单次运行100次,运行10个单次取平均时间。
测试结果:->> 效率高 5% 左右
功能差异:
json::->> 在使用前需要对对象转换为jsonb 然后再执行 ->> 操作,所以比->>更耗时 。
所以如果我们需要对返回的对象进行jsonb操作,用jsonb_* 相关函数时,
建议用jsonb_* 而不用 jsonb_*_text ,后者会把结果的jsonb对象转换为text,相对于会多两次 jsonb <--> text 转换操作。
2. any 和 in
select * from table where column in('1','3','5','7');
select * from table where column any('{1,3,5,7}'::text[]);
测试方法:单次运行100次,运行10个单次取平均时间。
测试结果:in 效率高 5% 左右
功能差异:
如果参数是自己传入的,那么建议用in(),如果参数是jsonb对象转换的可使用any。
3. 查询条件判断是否有值的时候,用 exists 和 判断结果 is null
select * from table1 a where exists (select 1 from jsonb_array_elements(a.value) as b where b->>'goods_id' = '?' ) ;
select * from table1 a where (select 1 from jsonb_array_elements(a.value) as b where b->>'goods_id' = '?' limit 1) is not null;
测试方法:单次运行100次,运行10个单次取平均时间。
测试结果:exists 效率高 8-10% 左右 。
功能差异:exists只比较不会操作数据,is not null 有操作数据的动作。
4. false 和 1 = 2
select * from table where false ;
建议使用false,对于cpu来说, 1=2 多数据存储的动作。
关于pgsql 几个操作符的效率测试比较的更多相关文章
- 关于 pgsql 数据库json几个函数用法的效率测试
关于 pgsql 数据库json几个函数用法的效率测试 关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次 ...
- NHibernate Demo 和 效率测试
本文关于NHibernate的Demo和效率测试,希望对大家有用. 1.先去官网下载Nhibernate 2.放入到项目中并建立Helper类 private static ISession _Ses ...
- Python_线程、线程效率测试、数据隔离测试、主线程和子线程
0.进程中的概念 三状态:就绪.运行.阻塞 就绪(Ready):当进程已分配到除CPU以外的所有必要资源,只要获得处理机便可立即执行,这时的进程状态成为就绪状态. 执行/运行(Running)状态:当 ...
- 进程池原理及效率测试Pool
为什么会有进程池的概念? 当我们开启50个进程让他们都将100这个数减1次减到50,你会发现特别慢! 效率问题,原因: 1,开辟内存空间.因为每开启一个进程,都会开启一个属于这个进程池的内存空间,因为 ...
- postgresql-int,bigint,numeric效率测试
在postgresql9.5的时候做过一个测试就是sum()的效率最终的测试结果是sum(int)>sum(numeric)>sum(bigint)当时比较诧异为啥sum(bigint)效 ...
- ORM for Net主流框架汇总与效率测试
框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论). ORM框架:Object/Relation Mapping( ...
- 纯PHP Codeigniter(CI) ThinkPHP效率测试
最近一直想做一个技术类的新闻站点,想做的执行效率高些,想用PHP做,一直纠结于用纯PHP做还是用CI或者THINKPHP.用纯PHP效率高,缺点 n多,比如安全方面.构架方面等等等等:用CI.thin ...
- Python--day39--进程池原理及效率测试
#为什么要有进程池的概念 #效率 #每次开启进程都要创建一个属于这个进程的内存空间 #寄存器 堆栈 文件 #进程过多 操作系统调度进程 # #进程池 #python中的 先创建一个属于进程的池子 #这 ...
- log2取整效率测试
RMQ问题中有个ST算法,当然还有个标准算法.LCA问题可以转化为带限制的RMQ(RMQ+-1)问题来解决.我们姑且认为这些问题的时间复杂度是查询$O(1)$的.但是,注意到对于RMQ(/+-1)问题 ...
随机推荐
- 洛谷P1908 逆序对(线段树解法)
题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定 ...
- zigbee学习基础
应用场合:功耗(休眠)以及自组网(动态路由,梯度法寻径)是其特点.距离短.功耗低且传输速率不高的各种电子设备之间进行有周期性数据.间歇性数据和低反应时间数据传输的应用(智能家居/仓储中转/伞兵落地协同 ...
- 监控Tomcat状态!(重点)
方法一:开发JAVA监控页面 [root@localhost ~]# mkdir /usr/local/tomcat8/webapps/memtest/[root@localhost ~]# cd / ...
- Failed to read candidate component class
今天编程时遇到了Failed to read candidate component class 这个异常,查了好久终于发现了是因为jdk的版本不对,所以报了这个错.
- Hibernate面试题(七)--load与get区别
1. load方式是延迟加载,只有属性被访问的时候才会调用sql语句 get方式是非延迟加载,无论后面的代码是否会访问到属性,马上执行sql语句 2. 都通过id=500去获取对象1. get方式会返 ...
- 「ZJOI2011」最小割
「ZJOI2011」最小割 传送门 建出最小割树,然后暴力计算任意两点之间最小割即可. 多组数据记得初始化. 参考代码: #include <algorithm> #include < ...
- Linux下清空文件的3种方法
1.echo -n > test.log #-n选项可以去掉空行 2.cat /dev/null > test.log 3.truncate -s 0 test.log
- Legal High
不让任何人承担责任,不想看的东西就回避, 但是,如果想夺回值得夸耀的生存方式,就必须看那些不愿意看的现实,必须带着身负重伤的觉悟前进,这才叫做战斗. 有怨言的话去坟墓里说,钱不是全部,钱就是你们向对手 ...
- 工作脚本拆分xml文并重定向数据
sed -n '/<N/p' CM-ENB-SRVIDENTIFYBASEBSRTDD-2C-ALLV2.9.0-20191209020003.xml.gz.xml|awk -F"&g ...
- 「Luogu P3680 凸轮廓线」
一道神奇的计算几何题 前置芝士 正三角形,正方形,圆:什么,您都会,那真是太好了. 三角函数的运用:因为我不是很想在这一块写太多,具体可以自行百度. 推导公式 对于一串是圆和正方形开头和结尾时是十分好 ...