SHOW
SHOW TABLE STATUS
SHOW STATUS
SHOW VARIABLES
SHOW LOGS
SHOW PROCESSLIST
SHOW GRANTS
SHOW CREATE TABLE
SHOW WARNINGS | ERRORS
SHOW TABLE TYPES
SHOW PRIVILEGES
SHOW STATUS
Команда SHOW STATUS
предоставляет информацию по состоянию сервера (как
mysqladmin extended-status
). Пример выходных данных приведен ниже (формат
и числа могут иметь некоторые отличия):
+--------------------------+------------+ | Variable_name | Value | +--------------------------+------------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Bytes_received | 155372598 | | Bytes_sent | 1176560426 | | Connections | 30023 | | Created_tmp_disk_tables | 0 | | Created_tmp_tables | 8340 | | Created_tmp_files | 60 | | Delayed_insert_threads | 0 | | Delayed_writes | 0 | | Delayed_errors | 0 | | Flush_commands | 1 | | Handler_delete | 462604 | | Handler_read_first | 105881 | | Handler_read_key | 27820558 | | Handler_read_next | 390681754 | | Handler_read_prev | 6022500 | | Handler_read_rnd | 30546748 | | Handler_read_rnd_next | 246216530 | | Handler_update | 16945404 | | Handler_write | 60356676 | | Key_blocks_used | 14955 | | Key_read_requests | 96854827 | | Key_reads | 162040 | | Key_write_requests | 7589728 | | Key_writes | 3813196 | | Max_used_connections | 0 | | Not_flushed_key_blocks | 0 | | Not_flushed_delayed_rows | 0 | | Open_tables | 1 | | Open_files | 2 | | Open_streams | 0 | | Opened_tables | 44600 | | Questions | 2026873 | | Select_full_join | 0 | | Select_full_range_join | 0 | | Select_range | 99646 | | Select_range_check | 0 | | Select_scan | 30802 | | Slave_running | OFF | | Slave_open_temp_tables | 0 | | Slow_launch_threads | 0 | | Slow_queries | 0 | | Sort_merge_passes | 30 | | Sort_range | 500 | | Sort_rows | 30296250 | | Sort_scan | 4650 | | Table_locks_immediate | 1920382 | | Table_locks_waited | 0 | | Threads_cached | 0 | | Threads_created | 30022 | | Threads_connected | 1 | | Threads_running | 1 | | Uptime | 80380 | +--------------------------+------------+
Приведенные выше переменные состояния имеют следующие значения:
Переменная | Значение |
Aborted_clients | Количество соединений, отмененных по причине отключения клиента без надлежащего закрытия соединения. See section A.2.9 Коммуникационные ошибки / Оборванные соединения. |
Aborted_connects | Количество неудачных попыток подсоединения к серверу MySQL. See section A.2.9 Коммуникационные ошибки / Оборванные соединения. |
Bytes_received | Количество байтов, полученных от всех клиентов. |
Bytes_sent | Количество байтов, отправленных всем клиентам. |
Com_xxx | Количество запусков каждой команды xxx. |
Connections | Количество попыток подсоединения к серверу MySQL. |
Created_tmp_tables | Количество неявных временных таблиц на диске, созданных во время выполнения операторов. |
Created_tmp_tables | Количество неявных временных таблиц в памяти, созданных во время выполнения операторов. |
Created_tmp_files | Количество созданных временных файлов mysqld .
|
Delayed_insert_threads | Количество используемых потоков вставки данных в режиме insert delayed .
|
Delayed_writes | Количество строк, вставленных при помощи команды INSERT DELAYED .
|
Delayed_errors | Количество записанных при помощи команды INSERT DELAYED строк, в которых произошли какие-либо ошибки (возможно, duplicate key ).
|
Flush_commands | Количество запущенных команд FLUSH .
|
Handler_commit | Количество внутренних команд COMMIT .
|
Handler_delete | Количество удалений строки из таблицы. |
Handler_read_first | Количество считываний из индекса первой записи. Если это значение высокое, то, по всей вероятности, сервер осуществляет много полных индексных сканирований, например, SELECT col1 FROM foo , предполагая, что col1 проиндексирован.
|
Handler_read_key | Количество запросов на чтение строки, основанных на ключе. Высокое значение переменной говорит о том, что ваши запросы и таблицы проиндексированы надлежащим образом. |
Handler_read_next | Количество запросов на чтение следующей строки в порядке расположения ключей. Это значение будет увеличиваться, если производится запрос индексного столбца с ограничением по размеру. Значение также увеличивается во время проведения индексного сканирования. |
Handler_read_prev | Количество запросов на чтение предыдущей строки в порядке расположения ключей. В большинстве случаев используется для оптимизации ORDER BY ... DESC .
|
Handler_read_rnd | Количество запросов на чтение строки, основанных на фиксированной позиции. Значение будет высоким, если выполняется много запросов, требующих сортировки результатов. |
Handler_read_rnd_next | Количество запросов на чтение следующей строки из файла данных. Данное значение будет высоким, если производится много сканирований таблиц. Обычно это означает, что ваши таблицы не проиндексированы надлежащим образом или ваши запросы не используют преимущества индексов. |
Handler_rollback | Количество внутренних команд ROLLBACK .
|
Handler_update | Количество запросов на обновление строки в таблице. |
Handler_write | Количество запросов на вставку строки в таблицу. |
Key_blocks_used | Количество используемых блоков в кэше ключей. |
Key_read_requests | Количество запросов на чтение блока ключей из кэша. |
Key_reads | Количество физических считываний блока ключей с диска. |
Key_write_requests | Количество запросов на запись блока ключей в кэш. |
Key_writes | Количество физических записей блоков ключей на диск. |
Max_used_connections | Максимальное количество одновременно используемых соединений. |
Not_flushed_key_blocks | Блоки ключей в кэше ключей, которые были изменены, но еще не записаны на диск. |
Not_flushed_delayed_rows | Количество строк, стоящих в очереди на запись в запросах INSERT DELAY .
|
Open_tables | Количество открытых таблиц. |
Open_files | Количество открытых файлов. |
Open_streams | Количество открытых потоков (в основном используется для журналирования). |
Opened_tables | Количество открывавшихся таблиц. |
Rpl_status | Статус отказобезопасной репликации (еще не используется). |
Select_full_join | Количество соединений без ключей (если это значение равно 0, необходимо внимательно проверить индексы своих таблиц). |
Select_full_range_join | Количество соединений, где был использован поиск по диапазону в справочной таблице. |
Select_range | Количество соединений, в которых использовались диапазоны в первой таблице. (Обычно это значение не критично, даже если оно велико) |
Select_scan | Количество соединений, в которых проводилось первое сканирование первой таблицы. |
Select_range_check | Количество соединений без ключей, в которых проверка использования ключей производится после каждой строки (если это значение равно 0, необходимо внимательно проверить индексы своих таблиц). |
Questions | Количество запросов, направленных на сервер. |
Slave_open_temp_tables | Количество временных таблиц, открытых в настоящий момент потоком подчиненного компьютера. |
Slave_running | Содержит значение ON , если это подчиненный компьютер, подключенный к головному компьютеру.
|
Slow_launch_threads | Количество потоков, создание которых заняло больше, чем указано в slow_launch_time .
|
Slow_queries | Количество запросов, обработка которых заняла больше времени, чем long_query_time . See section 4.9.5 Журнал медленных запросов.
|
Sort_merge_passes | Количество объединений, осуществленных алгоритмом сортировки. Если это значение велико, следует увеличить sort_buffer_size .
|
Sort_range | Количество сортировок, которые осуществлялись в диапазонах. |
Sort_rows | Количество отсортированных строк. |
Sort_scan | Количество сортировок, осуществленных путем сканирования таблицы. |
ssl_xxx | Переменные, используемые SSL; еще не реализовано. |
Table_locks_immediate | Количество запросов на немедленную блокировку таблицы. Доступно начиная с версии 3.23.33. |
Table_locks_waited | Количество запросов, когда немедленная блокировка не могла быть осуществлена и требовалось время на ожидание. Если это значение велико, и у вас есть проблемы с производительностью, сначала необходимо оптимизировать свои запросы, а затем либо разделить таблицы, либо использовать репликацию. Доступно начиная с версии 3.23.33. |
Threads_cached | Количество потоков в кэше потоков. |
Threads_connected | Количество открытых в настоящий момент соединений. |
Threads_created | Количество потоков, созданных для управления соединениями. |
Threads_running | Количество не простаивающих потоков. |
Uptime | Время в секундах, в течение которого сервер находится в работе. |
Некоторые примечания к приведенной выше информации:
Opened_tables
велико, возможно, что значение переменной
table_cache
слишком мало.
Key_reads
велико, возможно, что значение переменной
key_buffer_size
слишком мало. Частоту неуспешных обращений к кэшу можно
вычислить так: Key_reads
/Key_read_requests
.
Handler_read_rnd
велико, возможно, поступает слишком
много запросов, требующих от MySQL полного сканирования таблиц или у
вас есть соединения, которые не используют ключи надлежащим образом.
Threads_created
велико, возможно, необходимо увеличить
значение переменной thread_cache_size
. Частоту успешных обращений к
кэшу можно вычислить при помощи Threads_created
/Connections
.
Created_tmp_disk_tables
велико, возможно, необходимо
увеличить значение переменной tmp_table_size
, чтобы временные таблицы
располагались в памяти, а не на жестком диске.
User Comments
You state for example "if ... is big,
then ...". But: what is big? Relative to
what? It is good that you describe these
conditions, but we should know how these numbers
relate to get an idea of big/large/huge...
There are no absolutes for "big". Slashdot's "normal" will be a lot larger than Bob's Trout Forum's "big", for instance.
For the most part, if you're not trying to solve a particular performance problem, you probably don't need to lose sleep over the values; once you have a performance problem to debug, you can use the performance statistics along with slow query logging, no-index query logging, and EXPLAIN to track down the bottleneck queries in your application.
For example, if everything using a table seems to take too long to return, seeing a large Table_locks_waited compared to Table_locks_immediate suggests that waiting for locks is a performance problem; from there you can look at the Handler_read_* figures to see what sort of pathological behavior might be holding locks open, and then compare that to EXPLAINs of the queries in the slow query log to see which queries are causing the problem vs. which are just being slowed down as a result, from which you can start tuning individual queries and indices.
Add your own comment.