代码优化:
1.对于一修修饰符的使用:该使用final、private、protected等的应当加上,编辑器有内联机制,不但能提升性能也大大提升代码的可读性
2.对于变量的使用:尽量使用局部变量,局部变量保存在栈中,速度较快,像静态变量、成员变量都在堆中创建,速度较慢
3.对于一些jdk内置的类的使用:对于常字符串应使用String,比使用StringBuffer节省一半的空间与时间,但对于会动态改变的字符串,应该使用StringBuilder,在不需要同步的情况下,应当慎用StringBuffer;在不需要同步的情况下,不要使用Vector、HashTable
4.对于for循环的优化:不要在for中重复初始化变量,不要在for中使用try{}catch(Exception ex),这个代码块需要比较大的开销
5.对于一些IO操作,应该多使用缓存,使用java.nio的包很多类都是使用缓存的
6.对于一些乖除法运算,使用移位方式可大大提高性能
7.对于一些查询数据的操作,尽量使用延迟加载,能使用缓存的考虑使用缓存
SQL优化:
1.查询的结果集尽量不要使用*,对于一些操作,比如四舍五入等应使用内置函数,内置函数比复杂的sql高效得多
2.对于Form后的Join表,最后一个表应该是记录数最少的表,如果是三个表以上,存在中间表,应当把中间表作为基础表,表应当使用别名,结果列应加上列名,可加快sql的解析速度与避免列冲突的发生
3.where条件中,由于顺序是由右到左,能过滤到最大记录数的条件应当放在条件的最右边
4.如果能where条件中过滤的,就不要在having进行过滤,因为having条件,要对结果进行排序、统计等操作,性能开销较大
5.避免使用like,如果一定要使用,而且表的存储引擎是Myisam的话,尽可能给这个字段加上full-text索引,避免使用in、not in,可以的话使用exist、not exist代替,在使用union的时候,如果不会出现重复记录就应该使用union all这样就可以避免对结果进行排序操作
6.在条件中与order by中的字段,要避免使用一些会让索引失效的表达式,有如下情况会使索引失效:对字段进行计算,如:id+1=3,对字段使用函数,如concat(id,"12"),没有严格使用引号,如name是varchar类型,在表达时name=12就会导致索引失效,应该这样写:name='12',如果对字段进行like,%放在首位会导致索引失效,如果是组合索引,如A+B+C,如果A=''索引起作用,但非第一个字段就会失效,如B='',索引列不能存null值,会导致失效,避免使用<> =!、in 、not in 、exist、not exist,这些表达式会让索引失效
7.索引存储引擎有四种:b-tree、hash、full-text、r-tree,b-tree是最常用的,myisam和innodb都支持,hash比b-tree高效,只有memory和ndb cluster支持,而且操作也比较有限,只支持<=>、in操作,full-text只有char、varchar、text,索引类型有normal、unique、full-text三种
相关推荐
但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一 般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来使 用索引,这有助于写出高...
这是我个人整理,算是比较齐全,大家写SQL代码如果能按这种格式写,那么整个系统性能将会大大提高。。
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
但是,当Java开发人员编写SQL语句时,一切都变得不同了。SQL是一种说明式语言,与面向对象思想和命令式思想无关。在SQL语言中,查询非常容易表达。但它也不是那么容易以最佳或最正确地方式编写出来。开发人员不仅...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
一款开源SQL语句转换成Java 实体类的小工具 需求起源 因为公司之前使用JPA,先写实体类再生产数据库建表语句,这样会有一个问题,数据建表语句都是没有注释的,对于新来的同事非常不友好,同时在开发中需要看字段...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...
在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,这些标签和代码块可以根据条件包含或排除不同的部分,从而生成不同的SQL语句。动态SQL可以让开发者构建更灵活、高效的数据库操作语句,因为他们...