Рейтинг
0.00
голосов: 0

О блоге

Блог посвящённый установке, настройке и использованию MySQL Server

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (1)

Maugli

Журнал запросов MySQL в режиме реального времени (mysql realtime log)

Задался я вопросом, как вывести лог запросов MySQL в режиме реального времени.

Тут конечно много разных решений есть, и запрос mysql realtime log выдаст целый список сайтов с целой кучей вариантов) Но, я выбрал для себя простейший и достаточный, для организации слежения за потомком запросов на MySQL сервере.

Итак, нам нужен доступ в консоль, в которой выполняем команду:
mysqladmin -u<USER_NAME> -p<PASSWORD> -i 1 processlist

где:
  • USER_NAME — имя пользователя БД
  • PASSWORD — пароль пользователя базы данных
  • "-i" — интервал обновления
  • «processlist» — команда для вывода данных SHOW PROCESSLIST

В результате, мы получаем в окне терминала результат команды SHOW PROCESSLIST с интервалом обновления — 1 секунда.

П.С. для вывода более подробных данных, нужно в конце строки указать параметр "-v".
mysqladmin -u<USER_NAME> -p<PASSWORD> -i 1 processlist -v

Преобразование поля LineString в массив точек JSON

Преобразование поля LineString в массив точек JSON, или как хранить координаты точки в MySQL

Недавно обнаружил в MySQL возможность хранить координаты ГЕО точек. Более подробно про функции для работы с геометрическими функциями в MySQL можно прочитать на страницах руководства:

Я не буду в этой статье описывать все функции для работы с типом LineString, так как там нет ничего сложного и достаточно информации в официальном руководстве. Хочу же более детально остановиться на конкретной задаче, а именно:

«Как из поля с типом LineString получить массив координат в формате JSON».
Для чего это нужно?
Например, есть таблица с маршрутами, каждая строка — это маршрут, в строке есть поле points типа LineString, в котором хранятся все координаты точек маршрута и нужно получить массив этих точек в читаемом формате.

Вариант решения предлагаю следующий:
  1. Создадим функции в MySQL для преобразования LineString в JSON в формате [{lat: val1, long: val2}, {lat: val3, long: val4}...].
  2. Создадим запрос для выгрузки из таблицы маршрутов.


Читать дальше

Нужен ли индекс по полю tinyint(1) в MySql

Нужен ли индекс по полю boolean tinyint(1) в MySql?
Не могу сказать, что это принципиальный вопрос и что он очень давно меня мучает. Но, недавно разрабатывал базу данных с таблицей в которой много полей tinyint(1). И этот вопрос возник снова.

Мучила мысль, есть ли смысл использовать индекс в поле tinyint(1)? Будет ли прирос производительности?
И снова Google мне в помощь) И теперь я постараюсь процитировать «mysql ораторов» на своём блоге.

Первое, на что нужно обратить внимание, это количество планируемых записей в таблице, по которым нужно будет делать выборку. Если их количество не превышает 10 000, то сразу можно забывать про индекс по полю tinyint(1).

Если в запросе выборка идёт только по полю tinyint(1), то индекс не даст прироста в скорости, но может увеличить потребление памяти.

При большом количестве записей прирост составит около 10%.

Индекс по полю tinyint(1) есть смысл использовать в составных индексах.


Читать дальше

Использование утилиты mysqldump

Бекап базы при помощи mysqldump
Когда я понятия не имел что это такое, эта фраза казалось мне чем то очень сложным)))
Но, уже не один год я делаю дампы базы MySQL при помощи утилиты mysqldump. И вот, решил поделиться на своём блоге)

Понятно, что информации в сети достаточно. Но, сегодня у нас в компании все с катушек съехали и начали тотальный бекап… Видимо, календарь Майя делает своё дело)

Чтоб сделать бекап базы достаточно знать её имя, имя пользователя и пароль, а дальше все сделает утилита mysqldump.
bash# mysqldump -uИМЯ_ПОЛЬЗОВАТЕЛЯ_БД -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_БД имя_бд > имя_файла_куда_слить_дамп.sql

Но, что делать, если база находится не на localhost?
Добавим один ключ
bash# mysqldump -h СЕРЕВЕР_БАЗ_ДАННЫХ_MYSQL -uИМЯ_ПОЛЬЗОВАТЕЛЯ_БД -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_БД имя_бд > имя_файла_куда_слить_дамп.sql


Импорт дампа из файла в базу данных MySql
Для импорта базы данных используем следующую команду:
mysql -uИМЯ_ПОЛЬЗОВАТЕЛЯ_БД -pПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_БД имя_бд < dump_file_name.sql


Так же читайте — Импорт дампа большого размера в phpmyadmin

Помните! Регулярный backup — залог сохранения данных!