Еще раз вернемся к теме измерения скорости исполнения чего-либо. Ранее я уже рассказал о том, как измерить скорость исполнения участка кода на C/C++, а сейчас перейду немножко в другую степь, а именно к базам данных. Расскажу и покажу, как легко измерить время исполнения запроса к базе не выходя из консоли MySQL и не написав ни одной строчки кода.
Такую чудесную возможность нам дает инструмент профилирования в MySQL. В этой заметке я не буду углубляться в тонкости его использования, просто пробегусь по верхам и покажу как вытащить основную информацию о запросах к базе данных. Поехали!
Включаем профилирование в MySQL
Первым делом нужно включить инструмент профилирования. Все команды выполняются напрямую из консоли mysql, напомню, как в нее войти.
mysql -u root -p
После этого включаем профилирование.
set profiling=1
С текущего момента информация о запросах будет логироваться, давайте ее получим.
читать далее «Измерить время исполнения запроса в MySQL с помощью PROFILES» →
Термин репликация используется для обозначения механизма синхронизации нескольких копий данных, что повышает сохранность информации, отказоустойчивость и производительность системы. Ярким примером служит репликация базы данных между двумя серверами.
Master-Slave репликация MySQL
В терминологии Master-Slave мастером является первичный сервер с базой данных, на нем производится запись в базу, но чтение распределяется между мастером и слейвом в зависимости от нагрузки на систему, что повышает отказоустойчивость и производительность. Кроме того, благодаря такому подходу, копия базы данных всегда под рукой и ее можно восстановить в случае отказа одного из серверов.
В каких ситуациях может понадобится slave-сервер? Например, когда поступает большой массив данных для записи в базу и master-сервер просто не успевает выполнять чтение и клиенту приходится ждать окончания записи, чего можно избежать благодаря slave-серверу.
Возможны ситуации, когда мастер-сервер выходит из строя, в этом случае слейв-сервер подхватывает все функции мастера и работает в одиночку до его восстановления. Клиент скорее всего ничего не заметит, и уж точно не будет час-два-три ждать пока починят мастера.
Репликацию настроить совсем не сложно, благо механизм заложен в MySQL с самого начала.
Настройка на Master сервере
читать далее «Настройка репликации Master-Slave в MySQL» →
Привет, первая запись в 2017 году! Пока все доедают салатики, я решил написать небольшую заметочку про ограничения внешних ключей в базе данных MySQL.
Зачем нужны внешние ключи в таблице
Внешние ключи регламентируют отношения между таблицами. Благодаря им сильно упрощается контроль за структурой базы, уменьшается и упрощается код приложения, потому что большая часть ответственности за это мы перекладываем со своих плеч на саму базу данных. Правильно настроенные внешние ключи — это гарант того, что увеличится целостность данных за счет уменьшения избыточности.
В двух словах — во внешних ключах много плюсов, поэтому полезно знать, как ими оперировать.
Настройка внешних ключей
читать далее «Внешние ключи MySQL и их настройка в phpMyAdmin» →
Приветствую всех! Сегодня я коснусь такой замечательной темы, как базы данных. Уже давно проекты, даже самые мелкие, не мыслят своего существования без БД. Прошли те времена, когда информацию нужно было хранить в файликах, самостоятельно следить за ее систематизацией, структурированием и прочим. СУБД нас спасает от всего этого, поэтому нельзя не уметь ей пользоваться. Будь то MySQL, Oracle, PostgreSQL или любая другая.
Речь пойдет о подзапросах, почему часто без них не обойтись, и как использовать их максимально эффективно в своей работе.
Использование SQL подзапросов
Вряд ли найдется проект, который использует БД с одной единственной таблицей. И даже если так, то скорее всего появится задача, которую будет очень сложно решить одним запросом. Поэтому приходится писать еще один запрос, чаще всего в блоке WHERE.
Почему приходится? Все просто, потому что…
Первое и самое главное правило подзапросов: не используйте подзапросы!
А теперь, когда вы узнали всю правду, но желание писать подзапросы все еще сохранилось, я расскажу чем отличаются простые подзапросы от сложных.
читать далее «Простые и сложные SQL подзапросы с примерами» →