Недавно я заметил несколько "Слишком много подключений" ошибок на моем сайте.Я знаю причины и способы «решить» эту проблему, но я должен признать, что не знаю лучших методов, чтобы избежать этой проблемы или как улучшить мой код.
Я опубликую теоретический код (Пожалуйста, предположите, что все работает), и я прошу вас, ребята, помочь мне с некоторыми вопросами и как улучшить этот код.Таким образом, я могу исправить свои другие коды.
connection.php
$conn = new PDO('mysql:host=HOST;dbname=DATABASE;charset=utf8','USER', 'PASSWORD');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
my_page.php
include("connection.php");
$stmt = $conn->prepare("SELECT * FROM tableA WHERE condition = :condition");
$stmt->bindParam(':condition', $condition, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->rowCount();
function getName($id){
global $conn;
$stmt = $conn->prepare("SELECT * FROM tableB WHERE condition = :condition");
$stmt->bindParam(':condition', $condition, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->rowCount();
}
function getCompany($id){
global $conn;
$stmt = $conn->prepare("SELECT * FROM tableC WHERE condition = :condition");
$stmt->bindParam(':condition', $condition, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->rowCount();
}
МОИ ВОПРОСЫ:
1) Сколько соединений с базой данных было открыто в приведенном выше коде?
2) Каждый раз, когда выполняется запрос, используйте ($ stmt =$ conn-> prepare), новое соединение открыто?
3) Есть способ оптимизировать приведенный выше код, предполагая, что INNER JOIN или какая-либо другая оптимизация запроса невозможна?Я имею в виду, что есть 3 таблицы (не связаны), и мне нужно запрашивать информацию из них, не открывая новые соединения.