Привет, ребята, это мой первый пост здесь. Я использую Google Cloud SQL для хранения данных из моего скрипта Google Apps с использованием соединения JDBC, но это чертовски медленно. Я уже пробовал Google JDBC-туннель и обычное JDBC-соединение с IP-белым списком. При обоих методах один цикл соединения занимает около 900 мс, по сравнению с этим я даже получаю лучшую производительность записи / чтения в электронную таблицу. Таблица содержит только 20 столбцов и несколько тестовых записей (10 строк).
Кажется, используя GAS, вы не можете объединить ваше соединение в кеше, так как он только сохраняет строки, и если вы преобразуете в строку / анализируете для сохранения / чтения, это не сработает впоследствии, так что мне осталось открыть новое соединение для каждый экземпляр для чтения / записи.
Я использую SQL для хранения пользовательских состояний из моего Telegram-Bot, код прост, в состоянии чтения пользовательского состояния, обработки данных и записи пользовательского состояния, это только 2 JDBC-соединения на пользовательскую команду, но я получаю время реакции почти 2с. Любая помощь дорого оценена.
Код:
var dbUrl = "jdbc:google:mysql://myinstance/mytable";
var username = "myusername";
var password = "mypassword";
function jdbcGetUserState(chatid) {
var conn = Jdbc.getCloudSqlConnection(dbUrl,username,password);
var stmt = conn.prepareStatement("SELECT * FROM user_active WHERE chatid=?");
stmt.setInt(1,chatid);
stmt.setMaxRows(2);
var rs = stmt.executeQuery();
var data = {};
if (rs.next()) {
data =
{
activejobnumber: rs.getInt("activejobnumber"),
isadmin: rs.getBoolean("isadmin"),
...,
}
}
stmt.close();
conn.close();
return data;
}
РЕДАКТИРОВАТЬ: кажется, что установление нового соединения очень ресурсоемко и занимает почти 900 мс ... есть ли обходной путь к пулу соединений JDBC в скрипте приложений?
[18-09-10 09: 40: 12: 507 PDT] Jdbc.getCloudSqlConnection ([jdbc: google: mysql: / ...) [0,837 секунды]