Импорт больших файлов в phpMyAdmin

Доброго времени суток! Причиной возникновения этой заметки послужила ошибка, которую выкидывает phpMyAdmin при попытке импорта дампа базы из большого файла. Дословно она звучит примерно так: «Fatal error: Maximum execution time of 300 seconds exceeded in /opt/lampp/phpmyadmin/vendor/phpmyadmin/sql-parser/src/Lexer.php on line 227». Формулировка может отличаться в деталях. Из сообщения видно, что превышен максимальный временной лимит на исполнения скрипта, по этой причине дамп импортируется не весь и нам очень грустно. Но обо всем по порядку.

Не секрет, что для любого скрипта на PHP существуют стандартные настройки конфигурации, инициализированные в файле php.ini. Их там огромное количество и большинство из них трогать не рекомендуется.

Эти настройки глобальные, но каждый скрипт может лично для себя их изменять. Нас в первую очередь будет интересовать возможность увеличения, либо снятия лимита на максимальное время исполнения скрипта. Посмотрим как это сделать для любого скрипта и для phpMyAdmin в частности.

читать далее «Импорт больших файлов в phpMyAdmin»

Измерить время исполнения запроса в MySQL с помощью PROFILES

Еще раз вернемся к теме измерения скорости исполнения чего-либо. Ранее я уже рассказал о том, как измерить скорость исполнения участка кода на C/C++, а сейчас перейду немножко в другую степь, а именно к базам данных. Расскажу и покажу, как легко измерить время исполнения запроса к базе не выходя из консоли MySQL и не написав ни одной строчки кода.

Такую чудесную возможность нам дает инструмент профилирования в MySQL. В этой заметке я не буду углубляться в тонкости его использования, просто пробегусь по верхам и покажу как вытащить основную информацию о запросах к базе данных. Поехали!

Включаем профилирование в MySQL

Первым делом нужно включить инструмент профилирования. Все команды выполняются напрямую из консоли mysql, напомню, как в нее войти.

mysql -u root -p

После этого включаем профилирование.

set profiling=1

С текущего момента информация о запросах будет логироваться, давайте ее получим.

читать далее «Измерить время исполнения запроса в MySQL с помощью PROFILES»

Настройка репликации Master-Slave в MySQL

Термин репликация используется для обозначения механизма синхронизации нескольких копий данных, что повышает сохранность информации, отказоустойчивость и производительность системы. Ярким примером служит репликация базы данных между двумя серверами.

Master-Slave репликация MySQL

В терминологии Master-Slave мастером является первичный сервер с базой данных, на нем производится запись в базу, но чтение распределяется между мастером и слейвом в зависимости от нагрузки на систему, что повышает отказоустойчивость и производительность. Кроме того, благодаря такому подходу, копия базы данных всегда под рукой и ее можно восстановить в случае отказа одного из серверов.

В каких ситуациях может понадобится slave-сервер? Например, когда поступает большой массив данных для записи в базу и master-сервер просто не успевает выполнять чтение и клиенту приходится ждать окончания записи, чего можно избежать благодаря slave-серверу.

Возможны ситуации, когда мастер-сервер выходит из строя, в этом случае слейв-сервер подхватывает все функции мастера и работает в одиночку до его восстановления. Клиент скорее всего ничего не заметит, и уж точно не будет час-два-три ждать пока починят мастера.

Репликацию настроить совсем не сложно, благо механизм заложен в MySQL с самого начала.

Настройка на Master сервере

читать далее «Настройка репликации Master-Slave в MySQL»

Внешние ключи MySQL и их настройка в phpMyAdmin

Привет, первая запись в 2017 году! Пока все доедают салатики, я решил написать небольшую заметочку про ограничения внешних ключей в базе данных MySQL.

Зачем нужны внешние ключи в таблице

Внешние ключи регламентируют отношения между таблицами. Благодаря им сильно упрощается контроль за структурой базы, уменьшается и упрощается код приложения, потому что большая часть ответственности за это мы перекладываем со своих плеч на саму базу данных. Правильно настроенные внешние ключи — это гарант того, что увеличится целостность данных за счет уменьшения избыточности.

В двух словах — во внешних ключах много плюсов, поэтому полезно знать, как ими оперировать.

Настройка внешних ключей

читать далее «Внешние ключи MySQL и их настройка в phpMyAdmin»

ALTER USER. Сменить пароль пользователя в SQL*Plus

Доброго времени суток. У меня случилась неприятность при работе с БД Oracle в программе SQL*Plus, пароль для схемы «SYSTEM» оказался просроченным. Я просто напросто забыл его сменить, прошло 7 дней и он «протух». А мне нужно работать с таблицей product_user_profile, права назначать. Поэтому решил написать небольшую заметку для себя, чтобы раз и навсегда запомнить как менять пароль юзера в SQL*Plus.

Что делать если протух пароль для SYSTEM в Oracle

Первым делом нужно подключиться с привилегиями SYSDBA от лица пользователя SYS. Сделать это можно двумя разными способами.

читать далее «ALTER USER. Сменить пароль пользователя в SQL*Plus»