mysql без повторного использования соединения Ver 14.14 Distrib 5.7.29, для Linux (x86_64) - PullRequest
0 голосов
/ 29 марта 2020
[Ubuntu]: 18.04.4 LTS
[Apache]: Apache/2.4.29 (Ubuntu)
[MySQL]: Ver 14.14 Distrib 5.7.29, for Linux (x86_64) 
[PHP]: 7.2.24-0ubuntu0.18.04.3 (cli) 

MySQL Не используется существующее соединение.

SELECT * 
FROM INFORMATION_SCHEMA.PROCESSLIST 
WHERE DB="mySchema" and state <>"executing" order by id;    

Создано до 10 соединений. После создания этих соединений они начинают использоваться повторно, и столбец ВРЕМЯ сбрасывается. Конечно, 1 соединение должно быть создано и использовано повторно.

Реплицировано на GCloud LAMP Install и на локальной машине LAMP Install. Невозможно выполнить репликацию на локальной установке WAMP.

Для репликации:

  1. Создайте сценарий PHP для подключения к таблице MYSQL, например, приведенной ниже.
  2. Запустите скрипт 10 раз, подождите 10 секунд между каждым выполнением.
  3. Обратите внимание, что создано до 10 соединений. 4. Обратите внимание, что после создания этих соединений соединение используется повторно, и столбец ВРЕМЯ сбрасывается.

мой код:

<?php
$options = [
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT=>true
];
$conn = new PDO("mysql:host=localhost;dbname=mySchema", "myUser", "myPassword", $options);
$stmt = $conn->query("SELECT * FROM myTable;");
$row=$stmt->fetch(PDO::FETCH_NUM);
$conn = null;
?>

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Удалена база данных по умолчанию из DSN. Это обеспечивает повторное использование 10 соединений в нескольких схемах в приложении CRUD.

0 голосов
/ 29 марта 2020

Конечно, 1 соединение должно быть создано и повторно использовано

Конечно? Ничто в данных, которые вы предоставляете, не указывает на любое повторное использование соединений.

Если существует пул соединений, он будет гарантировать, что в конечном итоге соединения будут повторно использованы, но нет никакой гарантии , что одно и то же соединение будет использоваться снова и снова и до второго требуется одновременно. Я предполагаю, что ваша среда ведет себя корректно в зависимости от ее (нераскрытой) конфигурации.

Как вы говорите, вы можете повторить это в одной среде, но не в другой: это указывает на разные конфигурации, а не на любое неправильное поведение ,

И это не похоже на то, о чем вам нужно беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...