万丈高楼平地起,还是得打一个好地基呀

减少对变量对重复计算
//一般这么写
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);
}
  MAX(id) 取最单id最大值,MAX() 全表扫描
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优化---未完待续的更多相关文章

  1. 我的SQL总结---未完待续

    我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...

  2. 浅析Oracle PL/SQL 学习--未完待续

    这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

  3. MVC丶 (未完待续······)

         希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                     ...

  4. Go web编程学习笔记——未完待续

    1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...

  5. asp.net面试题总结1(未完待续。。。。)

    1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. Temp:临时的 Bag:袋子 (1)  TempData  保存在Session中,C ...

  6. 关于DOM的一些总结(未完待续......)

    DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...

  7. GitHub 入门不完全指南(未完待续)

    我一直认为 GitHub 是一座宝藏,想让更多人的知道它.加入到这个社区中.本人能力有限,如果文中出现不对的地方,欢迎指正交流. 一.前言 大家好,我是削微寒(xuē wēi hán),一个走在进阶路 ...

  8. 命令行操作mysql 未完待续......

    复制数据表 create table 新表 like 旧表: 删除表中某个字段 alter table 表名 drop column 字段; 例子: alter table news_apply_lo ...

  9. Hibernate二级缓存(未完待续)

    1.Hibernate的cache介绍: Hibernate实现了良好的Cache机制,可以借助Hibernate内部的Cache迅速提高系统的数据读取性能.Hibernate中的Cache可分为两层 ...

随机推荐

  1. C++ 深搜调错

    因为前两天某网站的比赛一个深搜错了,我只得了3等奖,我找不到错误,给别的大佬看他们又嫌恶心.emm……,比赛结束后我自己反思了一下,深搜写错了该怎么办,或者说怎样避免写错. 首先,变量名不要太ex,比 ...

  2. vue : 自定义脚手架提示

    做项目做烦了就想找点乐子. 比如,我们可以自定义脚手架提示.  webpack.dev.conf.js  54-78 行 module.exports = new Promise((resolve, ...

  3. [转载]Python ImportError: No module named 'requests'解决方法

    windows解决办法1.找到easy_install.exe.一般在python的安装路径下的Scripts文件夹中,如C:\Python34\Scripts\easy_install.exe2.从 ...

  4. 一起学Blazor WebAssembly 开发(1)

    最近blazor的WebAssembly 正式版出来了,正好手头有一个项目采用的前后端分离模式做的,后端用的abp vnext(.net core 的一个很著名的框架)框架开发的,其实前端之前考虑的使 ...

  5. Ubuntu安装Docker(官方文档翻译)

    翻译自Docker官方文档 https://docs.docker.com/engine/installation/linux/ubuntulinux/ 之前因为看不懂官方文档,卡在某个步骤无法完成安 ...

  6. js原型链结构理解

    在一般的面向对象的语言中,都存在类(class)的概念,类就是对象的模板,对象就是类的实例. 但在js中是没有类的定义的(万物皆是对象).  题外话:但是在ES6中提供了更接近传统语言的写法,引入了C ...

  7. 一个完全关于android编程的技术博客网站

    https://www.oschina.net/android/96/file-process

  8. MacOS下如何设置hosts?

    hosts文件是什么? hosts文件是一个系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”.当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中 ...

  9. [C++]类的空指针调用成员函数后,会发生什么事?

    类的实例调用成员函数的原理 其实不管是通过对象实例或指针实例调用,其实底层调用的过程都是一样的,都是把当前对象的指针作为一个参数传递给被调用的成员函数.通过下面的相关实例代码进行检验: 实验的C++代 ...

  10. PHP pos() 函数

    实例 输出数组中的当前元素的值: <?php$people = array("Peter", "Joe", "Glenn", &quo ...