Tomcat和SQL优化的面试题总结

说一说Tomcat优化
在windows下修改TOMCAT_HOME/bin/catalina.bat中有一个set CLASSPATH,在set CLASSPATH下面可以写入要改变得参数,也可以改变java虚拟机的最大内存,永久代大小和其他参数,具体里面的其他参数我也不记得了,在tomcat调优时我一般会看文档进行操作。在配置优化中:在TOMCAT_HOME/conf/server.xml可以配置端口,虚拟路径和其他相关配置,具体的我还得看着文档配置。除了Tomcat优化外,我还会SQL调优。


SQL优化:
1>、尽量避免在where子句中使用!=或<>操作符,否则会进行全表扫描。
2>、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 
select id from t where num is null 
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: 
select id from t where num=0 
3>、应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: 
select id from t where num=10 or num=20 
可以这样查询: 
select id from t where num=10 
union all 
select id from t where num=20 
4>、应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如: 
select id from t where num/2=100 
应改为: 
select id from t where num=100*2 


5>、应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如: 
select id from t where substring(name,1,3)='abc'--name以abc开头的id 
select id from t where datediff(day,createdate,'2005-11-30')=0--'2005-11-30'生成的id 
应改为: 
select id from t where name like 'abc%' 
select id from t where createdate>='2005-11-30' and createdate<'2005-12-1' 
6>、.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
7>、任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
8>、避免频繁创建和删除临时表,以减少系统表资源的消耗。
9>、尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该考虑改写。
10>、使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。

你可能感兴趣的:(Tomcat和SQL优化的面试题总结)