代码优化与sql优化---未完待续
万丈高楼平地起,还是得打一个好地基呀
减少对变量对重复计算
//一般这么写
for (int i = ; i < list.size(); i++)
{...}
//建议修改为:
for (int i = , length = list.size(); i < length; i++)
{...}
避免使用split(由于支持正则表达式效率比较低)
String str = "a,b,c,d,,f,g";
//一般这么写
String[] array = str.split(",");
//可以考虑使用apache的StringUtils.split(string,char)
String[] array = StringUtils.split(str1, ",");
//也可以考虑guava工具
List<String> list1=Splitter.on(",").splitToList(str1);
代码更简洁
if (isdone) {
return ;
} else {
return ;
}
//建议修改为
return (isdone ? : );
map、list伴随数据量越来越大,扩容很麻烦最好指定容量大小
//一般这么写
List<Integer> list = new ArrayList<>();
Map<String, String> map = new HashMap(); //集合默认容量较小,超过容量自动扩容,建议根据业务量、集合扩容规则等评估大概数据量n
List<Integer> list = new ArrayList<>(n);
Map<String, String> map = new HashMap(n);
//一般这么写
public void isFinished(Status status) {
//可能抛空指针异常
return status.equals(Status.FINISHED);
} //建议修改为
public void isFinished(Status status) {
return Status.FINISHED.equals(status);
}
//或
public void isFinished(Status status) {
return Objects.equals(status, Status.FINISHED);
}
SELECT MAX(id) from order o where o.pay_type = ;
替代方案:
select id from order where pay_type = order by id desc limit ;
当偏移量很大当时候,先查询出9000条数据对应的主键id的值,然后直接通过该id的值直接查询该id后面的数据
select * from sensor limit 9000,10; 替代方案:
select * from sensor where id > (select id from sensor order by id limit 9000,1) limit 10;
代码优化与sql优化---未完待续的更多相关文章
- 我的SQL总结---未完待续
我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...
- 浅析Oracle PL/SQL 学习--未完待续
这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
- Go web编程学习笔记——未完待续
1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...
- asp.net面试题总结1(未完待续。。。。)
1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. Temp:临时的 Bag:袋子 (1) TempData 保存在Session中,C ...
- 关于DOM的一些总结(未完待续......)
DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...
- GitHub 入门不完全指南(未完待续)
我一直认为 GitHub 是一座宝藏,想让更多人的知道它.加入到这个社区中.本人能力有限,如果文中出现不对的地方,欢迎指正交流. 一.前言 大家好,我是削微寒(xuē wēi hán),一个走在进阶路 ...
- 命令行操作mysql 未完待续......
复制数据表 create table 新表 like 旧表: 删除表中某个字段 alter table 表名 drop column 字段; 例子: alter table news_apply_lo ...
- Hibernate二级缓存(未完待续)
1.Hibernate的cache介绍: Hibernate实现了良好的Cache机制,可以借助Hibernate内部的Cache迅速提高系统的数据读取性能.Hibernate中的Cache可分为两层 ...
随机推荐
- 学会DevOps 能拿多少工资?DevOps 怎么自学?
落地高薪!DevOps为何受宠? DevOps在近几年的发展势头可谓是迅猛无比,已经有越来越多的企业机构开始尝试落地,从国外的微软谷歌到国内的阿里腾讯,DevOps已经从时髦概念落地最佳实践,进而改变 ...
- Python 3.x 安装PyQt5
一. 安装PyQt5 官方要求Python版本:Python >=3.5 打开命令行 输入 pip install PyQt5 PyQt5安装成功 安装完成功PyQt5后发现没有design ...
- Winform开发中的困境及解决方案
在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构.模块组合.界面处理.共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化.界面组件选择.业务模块场景划分.界面基类和辅 ...
- ~~并发编程(十三):信号量,Event,定时器~~
进击のpython ***** 并发编程--信号量,Event,定时器 本节需要了解的就是: 信号量,以及信号量和互斥锁的区别 了解时间和定时器,以及使用 信号量 信号量也是锁,本质没有变!但是他跟互 ...
- 【扩展推荐】Intervention/image 图片处理
Intervention/image 是为 Laravel 定制的图片处理工具, 它提供了一套易于表达的方式来创建.编辑图片. 一.环境要求 二.安装及配置 下载地址:https://packagis ...
- Android给ListView添加侧滑菜单功能
贼简单,但是上次集成完之后忘记整理,所以写的有点简单 SwipeMenu类 继承自ViewGroup package com.onepilltest.others; import android.co ...
- Robot Framework 使用常见问题汇总
一 安装过程 windows可以使用pip命令进行一系列安装,一定要使用管理员打开cmd窗口进行安装,不然可能后续会有很多自定义库无法使用的问题. 1 ride安装后打不开 解决方案 https:/ ...
- Day01_mongoDB入门
学于黑马和传智播客联合做的教学项目 感谢 黑马官网:http://www.itheima.com 传智播客官网:http://www.itcast.cn 微信搜索"艺术行者",关注 ...
- 重置spyder 解决 gbk 编码不能读取问题
重置spyder 解决 gbk 编码不能读取问题 2020-06-18
- Python重命名和删除文件
Python重命名和删除文件: rename(当前的文件名,新文件名): 将当前的文件名修改为新文件名 程序: # os.rename('旧名字',’新名字‘) import os os.rename ...