Странная проблема с моей базой данных, которую я размещаю, используя AWS RDS. Для определенной таблицы я иногда неожиданно получаю тайм-ауты почти для всех запросов. Интересно, что для других таблиц время ожидания почти отсутствует (после 150 000 мс, что является максимальным значением, которое я установил для лямбды, после того, как оно завершается), в то время как они содержат аналогичные данные.
Это журнал Lambda (функция, которая получает данные из базы данных):
15:38:10 Connecting db: jdbc:mysql://database.rds.amazonaws.com:3306/database_name Connected
15:38:10 Connection retrieved for matches_table matches, proceeding to statement
15:38:10 Statement created, proceeding to executing SQL
15:40:35 END RequestId: 410f7edf-0f48-45df-b509-a9b822fa5c1c
15:40:35 REPORT RequestId: 410f7edf-0f48-45df-b509-a9b822fa5c1c Duration: 150083.43 ms Billed Duration: 150000 ms Memory Size: 1024 MB Max Memory Used: 115 MB
15:40:35 2019-06-04T15:40:35.514Z 410f7edf-0f48-45df-b509-a9b822fa5c1c Task timed out after 150.08 seconds
И это код Java, который я использую:
LinkedList<Object> matches = new LinkedList<Object>();
try {
String sql = db_conn.getRetrieveAllMatchesSqlSpecificColumn(userid, websiteid, profileid, matches_table, "matchid");
Connection conn = db_conn.getConnection();
System.out.println("Connection retrieved for matches_table " +matches_table+", proceeding to statement");
Statement st = conn.createStatement();
System.out.println("Statement created, proceeding to executing SQL");
// execute the query, and get a java resultset
ResultSet rs = st.executeQuery(sql);
System.out.println("SQL executed, now iterating to resultset");
// iterate through the java resultset
st.close();
} catch (SQLException ex) {
Logger.getLogger(AncestryDnaSQliteJDBC.class.getName()).log(Level.SEVERE, null, ex);
}
return matches;
Пару месяцев назад я сделал большое обновление ресурсов базы данных и некоторое удаление нежелательных данных, и это более или менее исправило это. Но если я посмотрю на текущую статистику, все выглядит хорошо. Доступно много оперативной памяти (1 ГБ), не используется подкачка, достаточно кредитов процессора.
Так что я не уверен, является ли это проблемой MySQL или проблемой базы данных, связанной с RDW AWS. Есть предложения?