В таблице с 10 столбцами нет индексов, кроме первичного ключа в одном числовом столбце, и одного оператора INSERT INTO с 2500 строк, для выполнения вставки требуется от 40 до 60 секунд (разовая транзакция ... приблизительно 40 секунд в 1:00 и 60 секунд в обычные рабочие часы).Google Cloud SQL - медленная производительность INSERT
Я использую com.mysql.jdbc.GoogleDriver и экземпляр D0.
Мне кажется странным, что, когда я использую локальную среду разработки и подключаюсь удаленно через нее, используя тот же код (только diff - это удаленное соединение), те же самые вставки занимают всего около 10 секунд, а не 40-60 секунд. Так что что-то замедляется, когда оно перемещается в приложение ...
Есть ли способ улучшить развертывание App Engine?
EDIT: Я только что добавил примеры кода. Обратите внимание, что при запуске сервера dev и доступе к облачному 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 ''
и очень длинные вставки (около 3100 строк), которые я урезана здесь:
INFO: INSERT INTO import_test (import_test_ID, first_name, last_name, address, city, state, zip) VALUES (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), (?,?,?,?,?,?,?), ...
Я просто попробовал обновление до экземпляра D2, но, к сожалению, он имел точно такое же значение, что и D0 - около 57 секунд, чтобы вставить 2500 строк. Это кажется очень медленным, учитывая сегодняшнюю вычислительную силу. –
Не могли бы вы предоставить пример кода, чтобы воспроизвести это? –
только что добавленные примеры кода –