# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 4 Администрирование баз данных
    • 4.5 Справочник по языку администрирования баз данных
      • 4.5.6 Синтаксис команды SHOW
        • 4.5.6.1 Получение информации по базам данных, таблицам, столбцам и индексам
        • 4.5.6.2 SHOW TABLE STATUS
        • 4.5.6.3 SHOW STATUS
        • 4.5.6.4 SHOW VARIABLES
        • 4.5.6.5 SHOW LOGS
        • 4.5.6.6 SHOW PROCESSLIST
        • 4.5.6.7 SHOW GRANTS
        • 4.5.6.8 SHOW CREATE TABLE

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

4.5.6.3 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.
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

Posted by Sebastian Busch on Wednesday December 18 2002, @5:27pm[Delete] [Edit]

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...

Posted by Jan Smid on Thursday January 9 2003, @10:39am[Delete] [Edit]

Thank you Sebastian, this is exactly what I thought when reading this part. What is "big". I hope someone out there has an answer to this. Jan

Posted by Rich Lafferty on Tuesday January 14 2003, @9:03am[Delete] [Edit]

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.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.