Часто неиспользуемый, но более многословный
ПОКАЗАТЬ ПОЛНЫЙ ПРОЦЕССЛИСТ
удобен, но не так хорош, как потрясающий анализатор запросов не-предприятия - включите так
mysql> set profiling = 1;
Запрос в порядке, затронуто 0 строк (0,00 с)
Это два ненужных запроса для заполнения таблицы профилей,
mysql> select * from _test.customers;
ОШИБКА 1146 (42S02): Таблица «_test.customers» не существует
mysql> select * from test.customers limit 0;
Пустой набор (0,00 сек)
Получить список всех профилированных запросов и их продолжительность
mysql> показывать профили;
+ ---------- + ------------ + ------------------------- ------ +
| Query_ID | Продолжительность | Запрос |
+ ---------- + ------------ + ------------------------- ------ +
| 1 | 0,00013400 | выберите * из _test.customers |
| 2 | 0,01546500 | выберите * из test.customers |
+ ---------- + ------------ + ------------------------- ------ +
Отображаемая информация для последнего запроса будет просто «показывать профиль» - или вы можете указать запрос
mysql> показать профиль для запроса 2;
+ ---------------------- + ---------- +
| Статус | Продолжительность |
+ ---------------------- + ---------- +
| начиная | 0,000053 |
| проверка разрешений | 0,000007 |
| Открывающиеся столы | 0,000014 |
| Системная блокировка | 0,000006 |
| Блокировка стола | 0,000008 |
| init | 0,000065 |
| оптимизация | 0,000003 |
| выполнение | 0.000201 |
| конец | 0,000003 |
| конец запроса | 0,000002 |
| освобождение предметов | 0,000020 |
| ведение журнала медленного запроса | 0,000002 |
| уборка | 0,000004 |
+ ---------------------- + ---------- +
13 рядов в наборе (0,00 сек)
Вы также можете запросить определенную информацию, такую как CPU, BLOCK IO и SWAPS среди других ( все на странице man )
mysql> показать профиль процессора для запроса 2;
+ ---------------------- + ---------- + ---------- + ---- -------- +
| Статус | Продолжительность | CPU_user | CPU_system |
+ ---------------------- + ---------- + ---------- + ---- -------- +
| начиная | 0,000056 | 0,001000 | 0,000000 |
| проверка разрешений | 0,000007 | 0,000000 | 0,000000 |
| Открывающиеся столы | 0,000010 | 0,000000 | 0,000000 |
| Системная блокировка | 0,000005 | 0,000000 | 0,000000 |
| Блокировка стола | 0,000007 | 0,000000 | 0,000000 |
| init | 0,000059 | 0,000000 | 0,000000 |
| оптимизация | 0,000003 | 0,000000 | 0,000000 |
| статистика | 0,015022 | 0,000000 | 0,000000 |
| готовится | 0,000014 | 0,001000 | 0,000000 |
| выполнение | 0,000004 | 0,000000 | 0,000000 |
| Отправка данных | 0.000245 | 0,000000 | 0,000000 |
| конец | 0,000004 | 0,000000 | 0,000000 |
| конец запроса | 0,000002 | 0,000000 | 0,000000 |
| освобождение предметов | 0,000021 | 0,000000 | 0,000000 |
| ведение журнала медленного запроса | 0,000002 | 0,000000 | 0,000000 |
| уборка | 0,000004 | 0,000000 | 0,000000 |
+ ---------------------- + ---------- + ---------- + ---- -------- +
16 рядов в наборе (0,00 сек)
Не забудьте отключить его позже, так как регистрация добавляет накладные расходы.
mysql> set profiling = 0;
Запрос в порядке, затронуто 0 строк (0,00 с)
Некоторые команды MySQL , которые не всегда широко известны или запоминаются.
Измените ориентацию набора результатов на вертикальную для удобства чтения и вставки.
Отмените запрос, который вы вводите в данный момент, оставив его в своей истории.
Отредактируйте запрос или последний запрос (соответственно) с вашим любимым $ EDITOR.
Очистите вывод консоли.
Сравните наборы результатов по хешу MD5.
Измените ваше приглашение.
Найдите в своей истории команд заданную строку (например, Bash).
Начните вводить критерий поиска и повторите ^ R, чтобы просмотреть результаты.
источник
md5sum -
идея использовать в качестве пейджера. Не совсем mysql специфический тыУловки, которые я узнал, могут быть полезны для некоторых:
Чтобы запустить ранее сохраненный файл:
Используйте "\!" для доступа к командам оболочки. Например:
Поэтому, если вы хотите записать свое заявление в файл (без использования опции редактора), вы можете ввести:
Если вы введете
После этого ваши утверждения и результаты запроса будут направлены / распечатаны в указанный вами файл-файл. Используйте,
\\t
чтобы отключить это.Завершить запрос с
\\G
помощью «;» чтобы показать вывод в формате строки, а не в столбцах.Не исключайте использование предложения Where ... LIKE с оператором SHOW. Например:
Наконец, чтобы найти местоположение вашего каталога данных MySQL, не глядя на использование
my.cnf
файла:источник
Мне лично нравится
SHOW
командаВы можете сделать
SHOW PROCESSLIST
- Чтобы увидеть все работающие соединения с MySQLSHOW CREATE TABLE TableName
- Чтобы увидеть SQL используется для создания таблицыSHOW CREATE PROCEDURE ProcedureName
- Чтобы увидеть SQL используется для создания SPSHOW VARIABLES
- Чтобы увидеть все системные переменныеПолучить полный список здесь
источник
Фактически задокументировано , но очень раздражает: автоматическое преобразование даты для неверных данных.
Иногда вам «везет», когда MySQL не корректирует ввод для близких действительных дат, а вместо этого сохраняет его как
0000-00-00
недопустимый по определению. Однако даже тогда вы могли захотеть, чтобы MySQL потерпел неудачу, а не хранить это значение в молчании.источник
Еще одна особенность, которая отличает MySQL от других баз данных, - это
REPLACE INTO
команда. Ты можешь сделать:Вы также можете написать оператор замены так же, как вы пишете оператор обновления:
источник
Не совсем скрытая функция, но она менее известна, и я часто ее использую, чтобы сэкономить выполнение запроса, чтобы проверить, существует ли что-то перед выполнением UPDATE или INSERT
Документация здесь
источник
Чтобы увидеть план выполнения запроса, используйте
EXPLAIN
например
источник
Не очень скрытый, но медленный журнал запросов может быть очень полезен для отслеживания причин проблем с производительностью в часы пик.
В файле
my.cnf
, раздел [mysqld] - добавьте:источник
Ну, не могу пометить это как дубликат, так как это другой сайт (и у меня здесь нет представителя), но я просто сошлюсь на этот отличный пост stackoverflow по тому же вопросу :
источник
Так же, как дополнение к ответу pQD (как новичок, я пока не могу добавить комментарий), если вы еще не добавили путь к журналу медленных запросов в правильном файле my.cnf, журнал ошибок будет записывается в каталог данных (используйте SHOW VARIABLES LIKE 'datadir'; чтобы выяснить, где это), и имя файла будет в формате [systemname] -slow.log
источник