当前位置: 代码迷 >> Web前端 >> 公布web网站速度很慢
  详细解决方案

公布web网站速度很慢

热度:450   发布时间:2012-09-19 13:43:54.0
发布web网站速度很慢

我在windows上面写好了一个web项目,访问速度还可以。接着我把它部署到linux上面进行访问,发现速度变得非常慢,觉得很不可思议。又是第一次遇到这样的问题,所以觉得相当的纠结,不过在我同事的指点下,终于找出问题所在了。

1、我之前在windows上测试的时候程序和mysql数据库都在我自己的机器上,接着我把它放到linux上面测试时,我也在linux上面的mysql数据库上执行了创建表的脚本。问题出来了,如果我在windows上的mysql中创建一个表名为AAA,创建完后这个表名会默认变为aaa,而我在linux上面做同样的操作时,创建的数据库的名字为AAA,也就是说不会自动变为小写。而我的sql语句在查询时表名都是小写的,这个时候就会提示找不到表名。

2、我在写程序时有一个问题。就是在访问数据库时,对数据库执行了好多个开闭connection的操作。

?? 例如下面的程序:

	public int[] findUserAuthRecodeInSevenDates(List<String> xAxisData) {
		Connection conn=null;
		ResultSet rs=null;
		
		int length=xAxisData.size();
		int[] sevenResult=new int[length];		
		try{
			conn=this.getDataSource().getConnection();
			conn.setAutoCommit(false);
						
			for(int i=0;i<xAxisData.size();i++){
				int resultCount=0;
				String endDate=DataConverter.getDaysBofore(xAxisData.get(i), 6);
				rs=query2ResultSet(conn, DBSql.SELECT_USERAUTH_BY_DATES, xAxisData.get(i), endDate);
				while(rs.next()){
					resultCount=rs.getInt(1);
				}
				sevenResult[i]=resultCount;
			}
		}catch(SQLException e){
			SQLUtil.rolback(conn);
			e.printStackTrace();
		}finally{
			SQLUtil.close(conn);
		}		
		return sevenResult;
	}

?我之前的操作是传递过来的参数是一个startDate 和一个endDate,然后对函数findUserAuthRecodeInSevenDates进行循环xAxisData.size()次,导致要进行xAxisData.size()次的conn=this.getDataSource().getConnection()和SQLUtil.close(conn)操作,导致速度相当的慢。

嘿嘿,问题解决了就好。

  相关解决方案