我很难用Google Cloud SQL获得不错的表现,我正在做一些非常基本的CRUD操作,例如:
public BaseUser getUser(String token) throws SQLException{
Connection conn = DriverManager.getConnection(JDBC_CON_STRING);
PreparedStatement ps = conn.prepareStatement(GET_USER_BY_TOKEN_QUERY);
ps.setString(1, token);
ResultSet rs = ps.executeQuery();
List<BaseUser> users = inflateUser(rs);
if(users.size() == 0){
return null;
}
if(users.size() > 1){
logger.info("DATABASE MAY BE CORRUPTED, THERE'S MORE THAN 1 USER WITH THE SAME TOKEN");
}
ps.close();
rs.close();
conn.close();
return users.get(0);
}
Run Code Online (Sandbox Code Playgroud)
并且每个查询的平均响应时间为450毫秒.+ = 150表示openConnection,150表示操作,150表示关闭.见img.下面.
我已经阅读了谷歌文档,论坛和多个博客,但仍然无法看到我做错了什么(我一定做错了,450毫秒/查询很多...)
更新1:我肯定是谷歌云SQL问题,我安装了自己的本地MySQL服务器,我有更好的性能(80毫秒的"插入或更新",然后选择最终提交.),希望我能得到一些来自Google开发者的提示.团队,我真的很喜欢整个Google云平台,但根本不可能使用这种延迟级别=(
更新2:2014/05/06延迟问题与D0或D16相同.由于延迟,尝试插入10000行(3 varchar和~100bytes blob)需要来自Google ComputeEngine VM的32行.持续时间与10000个插入和单个批次插入相同.如果我使用64个线程,则持续时间减少到3秒.我用本机mysql jdbc驱动程序测试过.
有什么建议?谢谢!