#mysql #utf8mb4
#mysql #utf8mb4
Вопрос:
Мы используем Dropwizard, JDBI, MySQL 5.6 и mysql connector 5.1.32 и используем объединенный источник данных. Для поддержки смайликов единственный способ, который я нашел, — это вызывать запрос «SET NAMES utf8mb4» при подключении всякий раз, когда соединение получено. Но при загрузке мы наблюдаем, что этот запрос занимает много времени (около 222 мс).. Есть ли какая-либо альтернатива этому запросу? Что пробовалось до сих пор: 1. Попытался установить кодировку, кодировку символов в URL-адресе подключения jdbc 2. Столбцы в таблице используют кодировку utf8mb4 и сопоставление utf8mb4_unicide_ci 3. MySQL находится на RDS, еще не изменены переменные character_set_server и т. Д. На RDS
Комментарии:
1. Вы уверены, что соединение действительно было установлено при выполнении этого начального запроса? Я ничего не могу придумать, чтобы объяснить задержку. Фиктивный запрос, например
SET @one = 1;
, может использоваться для доказательства или опровержения того, действительно ли какой- либо начальный запрос медленный в наблюдаемых условиях, что исключаетSET NAMES ...
реальную проблему.2. Спасибо за ваш комментарий.. Ранее мы выполняли набор ИМЕН utf8mb4 каждый раз, когда получали соединение из пула. Вместо этого теперь я использую initSQL или запрос инициализации, который может быть определен в пуле соединений Tomcat JDBC.. Основываясь на документации, я думаю, это должно гарантировать, что запрос SET names выполняется только один раз при первом создании и добавлении соединения в пул.. Верно?