forum.bitel.ru http://forum.bitel.ru/ |
|
MySQL 5.5 и PREPARED http://forum.bitel.ru/viewtopic.php?f=22&t=6948 |
Страница 1 из 1 |
Автор: | borisk [ 09 июл 2012, 22:01 ] |
Заголовок сообщения: | MySQL 5.5 и PREPARED |
Добрый день! После перехода на 5.2 версию и движок InnoDB в логах некоторых программ стали появляться сообщения Can't create more than max_prepared_stmt_count statements (current value: 16382)]. Причем сам bgbilling работает нормально. Что можете посоветовать в этой ситуации? Не думаю что простое увеличение этого числа в корне решит ситуацию. Включил в mysql set global log=on и вижу много вот таких записей: Код: 535 Prepare SELECT DISTINCT cid FROM contract_module WHERE mid = 3
535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT summa1 + summa2 - summa3 - summa4 FROM contract_balance WHERE cid=? AND yy=? AND mm=? 535 Prepare SELECT summa1 + summa2 - summa3 - summa4 FROM contract_balance WHERE cid=? AND ((yy*12) + mm)<=((?*12) + ?) ORDER BY yy DESC, mm DESC LIMIT 1 5 Prepare SELECT status FROM ipn_contract_status_3 WHERE cid=? 535 Prepare SELECT * FROM contract WHERE id=? 120709 21:50:01 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? 535 Prepare SELECT * FROM contract WHERE id=? --More--(11%) |
Автор: | stark [ 10 июл 2012, 12:01 ] |
Заголовок сообщения: | Re: MySQL 5.5 и PREPARED |
Скоро будет средство диагностики для этого . Сделали уже его для 5.1 Код: 808 09.07.2012 13:04:13 ДОБАВЛЕНО Возможность определения незакрытых ресурсов БД. Для 5.2 в ближайшее время тоже выпустим, я отпишусь как настроить. Начали c 5.1, так как там это проще сделать - на старых версиях библиотек. Если кому надо, могу сказать как настроить для 5.1(начали уже отлаживать на одном из клиентов). Как результат исправления после диагностики (вы присылаете логи - мы правим ) надеемся получить сокращение потребляемой памяти и ускорение времени работы ..А родилось это все оттого что к нам в 5.2 обратились с проблемой что абонплаты считаются 6 часов, в результате диагностики исправили и стало считать на порядок меньше . |
Автор: | borisk [ 10 июл 2012, 12:09 ] |
Заголовок сообщения: | Re: MySQL 5.5 и PREPARED |
Надо, у меня на 5.1 есть клиент, который тоже страдает. А для 5.2 очень очень жду, запросов много и стабильно несколько раз в сутки mysql забивается. А дергать каждый раз базу - не комильфо. |
Автор: | afedorov [ 12 июл 2012, 17:38 ] |
Заголовок сообщения: | Re: MySQL 5.5 и PREPARED |
Была такая же проблема с 5.1. Биллинг занимал все каналы в mysql и никто подключаться не мог. Сделал cachePrepStmts=false в настройках jdbc. Помогло. На прозизводительность вроде не повлияло, уже несколько месяцев все работает нормально. |
Автор: | Amir [ 12 июл 2012, 18:52 ] |
Заголовок сообщения: | Re: MySQL 5.5 и PREPARED |
Похоже, что в библиотеке mysql, которая используется в 5.2 теперь по умолчанию useServerPrepStmts=true, хотя раньше было false (вроде бы были какие-то проблемы с ними в mysql драйвере). С одной стороны, они должны работать быстрее, с другой - при их кэшировании могут возникнуть такая ситуация, что очень много закешированных становится. Сейчас периодически выкладываем обновления "Освобождение ресурсов" (viewtopic.php?f=22&t=6959), которое должно помочь решить эту проблему. Установка cachePrepStmts=false или useServerPrepStmts=false также уберет эту проблему, но может повлиять на производительность. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |