Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как узнать размер базы данных MySql на PHP.

Андрей Первичков Ученик (132), на голосовании 1 год назад
Стоит вопрос мониторинга размера базы данных MySql. На хостинге жёсткие ограничения и нужно следить за объёмом занятой памяти. Как файлы по весу посчитать я нашёл функцию, а вот узнать размер базы пока не встретил простого и работающего решения. Думаю, что вопрос довольно тривиальный. Что посоветуете?
Голосование за лучший ответ
Митяй Профи (731) 1 год назад
Тоже год назад столкнулся с этой задачей - ситуация аналогичная хоть и места на хостинге хватает. Мне нужно было следить чтобы база не росла до невероятных размеров, а в случае критических величин скрипт писал следующие данные в новую базу. Так удобней делать переносы между ресурсами: один файл – одна база.
Не помню уже на каком форуме посоветовали отличный PHP класс для определения размера базы данных . Выводит отформатированную величину kb/Mb/Gb В статье есть и описание работы. Удачи.
Андрей ПервичковУченик (132) 1 год назад
Спасибо. Подошло решение. В первом варианте конечно кода больше, но хорошо ответ форматируется. Второй вариант мне больше зашёл, так как форматирование в принципе не нужно, да и посимпатичней код.
Professional Professional Мудрец (15955) 1 год назад
Вы можете использовать запрос SQL для получения размера базы данных. Ниже приведен пример использования этого запроса на PHP:

```php
// настройки базы данных
$host = 'localhost';
$user = 'username';
$password = 'password';
$database = 'database_name';

// создание подключения к базе данных
$conn = mysqli_connect($host, $user, $password, $database);

// запрос на получение размера базы данных
$sql = "SELECT CONCAT(round(sum(data_length + index_length) / 1024 / 1024, 2), ' MB') AS size FROM information_schema.TABLES WHERE table_schema = '$database'";

// выполнение запроса и получение результата
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);

// вывод результата
echo 'Размер базы данных: ' . $row['size'];

// закрытие подключения к базе данных
mysqli_close($conn);
```

Этот код соединяется с базой данных, отправляет SQL-запрос для получения размера и выводит его в качестве результата. Замените параметры подключения к базе данных на свои, и код должен работать.
Андрей ПервичковУченик (132) 1 год назад
Спасибо. Нашёл подобное решение только встроенное в класс в ответе выше. Немного неудобно, что имя базы нужно тащить до основного запроса, но работает нормально.
Похожие вопросы