Задать вопрос

Кол-во строк затронутых запросом при постоянном соединении MySQL?

На PHP в PDOStatement есть rowCount цитата "Возвращает количество строк, модифицированных последним SQL запросом" если держать соединение постоянно открытым он будет возвращать корректное значение? Будет ориентироваться на внутренний идентификатор именно этого запроса а не соединения с БД?
И если у кого есть мануал как лучше держать открытым соединение с БД при "умирающих" скриптах буду благодарен, демона держать какого-то?
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
MySQL и PDO.
Если вы только не настраивали специально что-то очень странное, то пул постоянных соединений поддерживается не в режиме statement based, а в режиме session based - соединение выдаётся запросившему его процессу монопольно и пока процесс не отпустит соединение сам (например, завершится), это соединение не будет предоставлено никакому другому процессу. Запросы других процессов через это соединение выполняться не будут, даже если соединение простаивает.

Что делать с умирающими скриптами - а уверены, что что-то надо делать? mysql архитектурно заточен легко и быстро открывать-закрывать соединения. (в отличии от postgresql того же, в котором без стороннего пулера коннектов жизни можно сказать и нет). Зато нет граблей с случайно зависшими транзакциями.

php.net/manual/en/features.persistent-connections.php
Persistent connections were designed to have one-to-one mapping to regular connections. That means that you should always be able to replace persistent connections with non-persistent connections, and it won't change the way your script behaves. It may (and probably will) change the efficiency of the script, but not its behavior!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы