我很难用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驱动程序测试过.
有什么建议?谢谢!
我正在谷歌应用程序引擎中开发我的应用程序现在我正在使用谷歌云SQL.它完全在localhost运行,但是当我将我的应用程序部署到服务器时,它会给我以下错误.
ImportError: No module named MySQLdb
Run Code Online (Sandbox Code Playgroud)
后来我将MySQLdb包复制到应用程序目录.现在它给了我错误
ImportError: No module named _mysql.
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么,任何准则?
如何使用Cloud SQL创建数据库?当我使用MySQL时,我可以轻松地运行一个sql脚本来在phpMyAdmin上创建它们.
我发现一个网站宣称可以在Google Cloud SQL上运行SQL文件.
这正是我想要做的.我可以运行我的代码来创建几个数据库,它们将在我的云SQL中,我可以将我的appengine应用程序连接到我的cloudql,它将按预期工作.
但是,当我按照该网站上的说明操作时,我只看到这个:
SQL提示符在哪里?如何在我的云sql实例上创建数据库?
我使用的是从BigQuery列中提取JSON数据JSON_EXTRACT.现在我想提取值列表AVG并对它们运行聚合函数(如)..objects[*].v在http://jsonpath.curiousconcept.com/上测试JsonPath表达式成功.但查询:
SELECT
JSON_EXTRACT(json_column, "$.id") as id,
AVG(JSON_EXTRACT(json_column, "$.objects[*].v")) as average_value
FROM [tablename]
Run Code Online (Sandbox Code Playgroud)
在BigQuery上抛出JsonPath解析错误.这可能在BigQuery上吗?或者我是否需要预处理我的数据以便针对我的JSON内部的数据运行聚合函数?
我的数据与此类似:
# Record 1
{
"id": "abc",
"objects": [
{
"id": 1,
"v": 1
},
{
"id": 2,
"v": 3
}
]
}
# Record 2
{
"id": "def",
"objects": [
{
"id": 1,
"v": 2
},
{
"id": 2,
"v": 5
}
]
}
Run Code Online (Sandbox Code Playgroud)
这与另一个问题有关.
更新:运行两个查询可以简化问题.首先,运行JSON_EXTRACT并将结果保存到视图中.其次,针对此视图运行聚合函数.但即便如此,我还需要纠正JsonPath表达式$.objects[*].v …
sql json aggregate-functions google-cloud-sql google-bigquery
使用 Google Cloud SQL 我试图将我的主实例恢复到以前的备份,但首先我想克隆我不想恢复的表和数据库的实例。在等待克隆一个多小时后,我取消了克隆并尝试删除克隆的实例。但是,克隆现在停留在维护状态并尝试删除我收到以下错误。
mycomputer:~ myuser$ gcloud sql instances delete cloned
All of the instance data will be lost when the instance is deleted.
Do you want to continue (Y/n)? y
ERROR: (gcloud.sql.instances.delete) The instance or operation is not in an appropriate state to handle the request.
Run Code Online (Sandbox Code Playgroud)
该实例是使用以下命令创建的,然后在等待太长时间后使用 CTRL+C 退出。
mycomputer:~ myuser$ gcloud sql instances clone main cloned
Cloning Cloud SQL instance.../ERROR: Caught socket error, retrying:[Errno 54] Connection reset by peer
ERROR: Caught socket error, retrying: [Errno 54] Connection …Run Code Online (Sandbox Code Playgroud) 我刚刚下载了最新版本的MySQL Workbench(6.3.6)并尝试使用新的"表数据导出"向导将远程表(在Google CloudSQL上)导出到csv.该表有大约600,000行,最终下载的大小约为75MB.花了7.5个小时.
我意识到我可以使用Google Developer Console来执行此导出(我做了,大约花了15秒),但似乎MySQL Workbench出了问题.是否会出现配置问题导致此问题变得如此缓慢?
当我尝试使用Cloud SQL代理在Windows中配置对Google Cloud SQL的访问时,这是出现的错误-“监听tcp 127.0.0.1:3306:bind:试图以一种禁止其访问的方式访问套接字访问权限。”
这是我使用的命令格式“ cloud_sql_proxy.exe -dir = / cloudsql -instances = my-project:us-central1:sql-instance = tcp:3306 mysql -u --host”-如中所述该文档。
有人可以让我知道真正的原因吗?
使用MySQL Workbench Ver.6.3.6
刚刚推送到我的Google SQL数据库实例的更新,我无法再使用Workbench连接到数据库..当我这样做时,我收到以下错误.
ssl connection error: unknown error number
Run Code Online (Sandbox Code Playgroud)
有没有其他人经历过这个?知道修复吗?
到目前为止,我发现谷歌群组中只有一个人仅在2天前就报告了同一个问题.
PS我在Google SQL中的第二个实例尚未更新,我仍然可以连接到它.
PSS我甚至没有使用SSL连接.
UPDATE
5背靠背谷歌在过去30分钟内的更新.事情肯定有点......但遗憾的是我仍然无法联系.
mysql ssl mysql-workbench google-cloud-sql google-cloud-platform
我们将 Google Cloud SQL 数据库与复制一起使用,并且从三天以来,我们的主从复制一直落后并且没有赶上。
可能是什么原因,我们能做什么?
到目前为止我们做了什么:
当我们意识到我们在 Google Cloud 中的 mysql 副本与主服务器不同步时,它就开始了。我查看了日志并注意到以下错误消息在 3 天前异常频繁地发生。
"2018-05-03T08:31:07.851491Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 5539ms. The settings might not be optimal. (flushed=289 and evicted=0, during the time.)"
Run Code Online (Sandbox Code Playgroud)
直到现在,此消息仍会出现在错误日志中。我用谷歌搜索并找到了这个 stackoverflow 线程:
如何解决 mysql 警告:“InnoDB:page_cleaner:1000ms 预期循环花了 XXX ms。设置可能不是最佳的”?
提到以下设置可以帮助解决这个问题 innodb_lru_scan_depth to 256。
但是,我们的数据库在 Google Cloud 中,我们无法自定义.my.cnf。无法更改上述标志。
大约三天前我们执行了一个脚本,它删除了我们数据库中的大量数据。我假设它创建了很多“ dirty_pages ”,这些在我上面链接的stackoverflow线程中提到过。为了获取更多信息,我连接到副本并发出命令
SHOW SLAVE STATUS\G;
Run Code Online (Sandbox Code Playgroud)
显示从机状态。以下是我觉得可疑的一些点
*************************** 1. row ***************************
Slave_IO_State: Queueing master event to the relay log
Master_Host: IPAdress
Master_User: Master …Run Code Online (Sandbox Code Playgroud) mysql replication innodb google-cloud-sql google-cloud-platform
关于连接外部应用程序的Cloud SQL 文档对我帮助不大。是不是有一些库来处理数据流量,比如 Firebase 的 Cloud Firestore 和实时数据库产品?