SQL优化:
避免select*查询多余的字段;
对经常查询的字段做索引;
尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃索引而导致全表扫描
选择合适的存储引擎,MyISAM适合于一些需要大量查询的应用,但是对于大量写操作不是特别好,甚至你只需要update一个字段,整个表就会锁起来,而别的进程,就算是读进程都无法操作直到读操作完成,另外,MyISAM对于SELECT COUNT(*)是很快的;InnoDB支持“行锁”,在写操作多的时候,会占优势,另外,InnoDB还支持事务
代码优化:
尽量减少对变量的重复计算:
对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等
使用数据库连接池和线程池:
这两个池都是用于重用对象的,前者可以避免频繁地打开和关闭连接,后者可以避免频繁地创建和销毁线程
及时关闭流:
Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。
服务器优化:
采用集群,将服务器的压力分散开来;
优化tomcat参数,主要是优化连接配置,关闭dns查询