在一个有 10 列的表中,除了单个数字列上的主键之外没有索引,还有一个包含 2,500 行的 INSERT INTO 语句,执行插入需要 40 到 60 秒(单个事务......凌晨 1:00 约为 40 秒,正常工作时间约为 60 秒)。
我正在使用com.mysql.jdbc.GoogleDriver和一个D0实例。
我觉得奇怪的是,当我使用本地开发环境并通过它进行远程连接时,完全使用相同的代码(只有 diff 是远程连接),这些相同的插入只需要大约 10 秒而不是 40 到 60 秒。因此,当它移动到应用程序引擎时,某些东西会变慢很多......
有什么方法可以提高 App Engine 部署的性能吗?
编辑:我刚刚添加了代码示例。请注意,在运行开发服务器和访问云 SQL 时,运行速度非常快(上次测试为 10 秒)。
下面是创建表语句:
CREATE TABLE import_test ( import_test_ID bigint NOT NULL COMMENT 'AUTOKEY' , INDEX (import_test_ID) , first_name varchar(30) COMMENT '' , last_name varchar(30) COMMENT '' , address varchar(60) COMMENT '' , city varchar(30) COMMENT '' , state varchar(10) COMMENT '' , zip varchar(15) COMMENT '' , PRIMARY KEY (import_test_ID) ) COMMENT ''
以及我在这里修剪的很长的插入(大约 3,100 行):
INFO: INSERT INTO import_test (import_test_ID, first_name, last_name, address, city, state, zip) VALUES (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), ...
您可以将复制设置为异步。