202012-29 Postgresql排序与limit组合场景性能极限优化详解 1构造测试数据createtabletbl(idint,numint,arrint[]);createindexidx_tbl_arrontblusinggin(arr);createorreplacefunctiongen_rand_arr()returnsint[]as$$selectarray(select(1000*random())::intfromgenerate_series(1,64));$$languagesqlstrict;insertintotblselectgenerate_series(1,3000000),(10000*random())::int,gen_rand_arr();insertintotblselectgenerate_series(1,500),... 继续阅读 >
202012-22 Mysql优化神器(推荐) 前言今天逛github时,发现了这款对SQL进行优化和改写的自动化工具sora。感觉挺不错的,就下载学习了一下。这个工具支持的功能比较多,可以作为我们日常开发中的一款辅助工具,现在我就把它推荐给你们~~~github传送门:https://github.com/XiaoMi/soar背景在我们日常开发中,优化SQL总是我们日常开发任务之一。例行SQL优化,不仅可以提升程序性能,还能够降低线上故障的概率。目前常用的SQL优化方式包括但不限于:业务层优... 继续阅读 >
202012-10 MySql如何查看索引并实现优化 mysql中支持hash和btree索引。innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引我们可以通过下面语句查询当前索引使用情况:showstatuslike'%Handler_read%';+-----------------------+-------+|Variable_name|Value|+-----------------------+-------+|Handler_read_first|0||Handler_read_key|0||Handler_read_last|0||Handler_read_next|0||Handler_read_prev|0||Ha... 继续阅读 >
202012-05 JavaScript中条件语句的优化技巧总结 对多个条件使用Array.includesfunctiontest(fruit){if(fruit=='apple'||fruit=='strawberry'){console.log('red');}}上面的例子看起来不错。然而,如果还有更多红颜色的水果需要判断呢,比如樱桃和小红莓,我们要用更多的||来扩展这个表述吗?我们可以用Array.includes重写上面的条件!functiontest(fruit){constredFruits=['apple','strawberry','cherry','cranberries'];if(redFruits.includes(fruit... 继续阅读 >
202011-10 MySQL group by语句如何优化 在MySQL中,新建立一张表,该表有三个字段,分别是id,a,b,插入1000条每个字段都相等的记录,如下:mysql>showcreatetablet1\G***************************1.row***************************Table:t1CreateTable:CREATETABLE`t1`(`id`int(11)NOTNULL,`a`int(11)DEFAULTNULL,`b`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`a`(`a`))ENGINE=InnoDBDEFAULTCHARSET=utf81rowins... 继续阅读 >
202011-03 Mybatis如何使用注解优化代码 entity层代码不变,因为是优化,所以在dao层新增了一个通过id查询用户的功能,现在来演示一下优化前后的代码对比,希望你们喜欢entity层代码不变,dao层中的UserMapper中添加一个方法/***根据id查询用户*/UserfindUserById(intid);在UserMapper.xml映射文件中添加<selectid="findUserById"parameterType="int"resultType="com.vg.entity.User">select*fromuserwhereid=#{id};</select>在test层中的test中使用... 继续阅读 >
202010-30 记一次MySQL的优化案例 一 背景 有赞的每个OLTP数据库实例上会设置一个sql-killer进程用于kill掉执行时间超过一定阈值的sql。下午开发接收到sql被kill的报错,一起帮助开发排查,本文介绍该案例。二场景分析表结构:CREATETABLE`xxx_info`( `id`bigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'id', `user_id`bigint(20)unsignedNOTNULLDEFAULT'0', `group_id`bigint(20)unsignedNOT... 继续阅读 >
202010-18 mysql对于模糊查询like的一些汇总 1、常见用法:(1)搭配%使用%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据:(2)搭配_使用_代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出下面一条数据:2、使用like模糊查询会导致索引失效,在数据量大的时候会有性能问题(1)尽量少以%或者_开头进行模糊查询通过explain执行计划,我们发现,使用like模糊查询时,如果不以%和_开头查询的话,索引还是有效的以%或者_开头查询,索... 继续阅读 >
202010-16 Vue3.0的优化总结 1.源码优化:a.使用monorepo来管理源码Vue.js2.x的源码托管在src目录,然后依据功能拆分出了compiler(模板编译的相关代码)、core(与平台无关的通用运行时代码)、platforms(平台专有代码)、server(服务端渲染的相关代码)、sfc(.vue单文件解析相关代码)、shared(共享工具代码)等目录。Vue.js3.0,整个源码是通过monorepo的方式维护的,根据功能将不同的模块拆分到packages目录下面不同的子目录中,每个p... 继续阅读 >
202010-10 Python尾递归优化实现代码及原理详解 在传统的递归中,典型的模式是,你执行第一个递归调用,然后接着调用下一个递归来计算结果。这种方式中途你是得不到计算结果,知道所有的递归调用都返回。这样虽然很大程度上简洁了代码编写,但是让人很难它跟高效联系起来。因为随着递归的深入,之前的一些变量需要分配堆栈来保存。尾递归相对传统递归,其是一种特例。在尾递归中,先执行某部分的计算,然后开始调用递归,所以你可以得到当前的计算结果,而这个结果也将作为参数... 继续阅读 >
202010-10 Vue3为什么这么快 总所周知,程序员追求的就是一个字:快!(当然不是什么都追求快的,有些事情快起来是不行滴)昨天Vue3.0正式发布了,激动的心,颤抖的手,摸了摸我的头发,嗯~还好。据说Vue3.0相比Vue2.x在性能上提升了1.2~2倍,为啥他就这么快呢?vue3.0做了以下事情diff算法优化静态提升(hoistStatic)事件侦听器缓存(cacheHandlers)SSR优化(看心情更新)diff算法优化Vue2.x的diff算法vue2.x的diff算法叫做全量比较,顾名思义,就... 继续阅读 >
202010-10 两个小例子轻松搞懂 java 中递归与尾递归的优化操作 废话不多说,我们直接上两个最常见的小例子:一、递归,伪递归,迭代实现n!packagecom.njbdqn.test02;/***递归,伪递归,迭代实现n!*/publicclassRecursionTest{publicstaticvoidmain(String[]args){System.out.println(recurse(5));//递归显示System.out.println(camouflageRecurse(5,1));//伪递归System.out.println(iteration(5));//迭代}/***n的阶乘,尾递归实现方式**@paramn*@paramre... 继续阅读 >
202010-10 总结一次C++ 程序优化历程 近期用到了一位师兄写的C++程序,总体功能良好。使用不同的数据测试,发现了一个明显的缺点:大数据量下,预处理过程耗时很长。中科院的某计算集群,普通队列中的程序运行时间不能超过6个小时。而手上这套程序,大数据量下预处理就花了不止六个小时,结果当然是还没开始就被结束了。和天河二号的工作人员联系,确认没有执行时间限制。于是开通了天河二号的账号,把程序扔上去跑。执行大数据量时,程序莫名被kill。询问技术支持,得... 继续阅读 >
202010-10 MySQL性能优化技巧分享 MySQL性能优化在互联网公司MySQL的使用非常广泛,大家经常会有MySQL性能优化方面的需求。整理了一些在MySQL优化方面的实用技巧。Schema与数据类型优化整数通常是标识列最好的选择,因为它们很快并且可以使用AUTO_INCREMENT完全“随机”的字符串(如:MD5()、SHA1()或者UUID()等产生的字符串)会任意分布在很大的空间内,会导致INSERT以及一些SELECT语句变的很慢如果希望查询执行得快速且并发性好,单个查询最好不要做太多的... 继续阅读 >
202010-10 JS性能优化实现方法及优点进行 最近刚阅读完《高性能javascript》,想谈谈对js性能优化的看法。理解有些不同,可能还需要各位多多提醒。话不多说,提到javascript难免会联想到文档对象模型(DOM),它作用于XML和HTML文档的程序接口(API),位于浏览器中,主要用来与HTML文档打交道。同样也用于Web程序中获取XML文档,并使用DOMAPI来访问文档中的数据。尽管DOM是个与语言无关的API,它在浏览器中的接口却是用javascript实现的。客户端脚本编程大多数时候是在和底层... 继续阅读 >
202010-10 Linux 系统优化的一些建议(内核优化) 关闭swap如果服务器上有运行数据库服务或消息中间件服务,请关闭交换分区echo"vm.swappiness=0">>/etc/sysctl.confsysctl-pOOMKiller一般我们的linux服务都是混部服务的,每个程序申请的物理内存都是共享的;例如物理内存只有1g,启动2个程序各申请1g是可以的,linux通过这种过度分配的方式来达到内存的充分利用,当程序实际使用内存超出物理内存时,会被系统按照优先级,杀掉一部分程序以确保其它程序的正常运行;为了避免... 继续阅读 >