El servidor mantiene muchas variables de estado que proveen de información sobre sus operaciones. Puede ver estas variables y sus valores utilizando la sentencia
SHOW STATUS:mysql> SHOW STATUS;+-----------------------------------+------------+| Variable_name | Value || Aborted_clients | 0 |+-----------------------------------+------------+ | Aborted_connects | 0 |… | Connections | 30023| Bytes_received | 155372598 | | Bytes_sent | 1176560426 | |ated_tmp_tables | 2 | …| Created_tmp_disk_tables | 0 | | Created_tmp_files | 3 | | Cr e| Threads_created | 217 | | Threads_running | 88 | | Uptime | 1389872 |+-----------------------------------+------------+
Muchas variables de estado son inicializadas a 0 por la sentencia
FLUSH STATUS.
Las variables de estado tienen los siguientes significados. Las variables en las que no se indica versión están presentes en MySQL 5.0. Para información a propósito de su historial de implementación, consulte Manual de referencia de MySQL 4.1.
Aborted_clientsEl número de conexiones que han sido abortadas debido a que el cliente murió sin cerrar la conexión apropiadamente. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.Aborted_connectsEl número de intentos de conexión al servidor MySQL que han fallado. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.Binlog_cache_disk_useEl número de transacciones que han utilizado la cache temporal del registro binario pero han excedido el valor debinlog_cache_sizey utilizado un archivo temporal para almacenar las sentencias de la transacción.Binlog_cache_useEl número de transacciones que han utilizado la cache temporal del registro binario.Bytes_receivedEl número de bytes recibidos desde todos los clientes.Bytes_sentEl número de bytes enviados hacia todos los clientes.Com_xxxLas variables del contador de sentenciasCom_indica el número de veces que cada sentenciaxxxxxxha sido ejecutada. Existe una variable de estado por cada tipo de sentencia. Por ejemploCom_deleteyCom_insertcuentan sentenciasDELETEandINSERT, respectivamente.Las variables de estadoCom_stmt_fueron añadidas en 5.0.8:xxxCom_stmt_prepareCom_stmt_executeCom_stmt_fetchCom_stmt_send_long_dataCom_stmt_resetCom_stmt_close
Estas variables representan comandos de sentencias preparadas. Sus nombres se refieren a los comandosCOM_utilizados en la capa de red; en otras palabras: Sus valores son incrementados siempre que las llamadas de la API de sentencias preparadas como mysql_stmt_prepare(), mysql_stmt_execute(), etc. son ejecutadas. Asímismo,xxxCom_stmt_prepare,Com_stmt_executeyCom_stmt_closese incrementan también cuando alguien ejecuta las siguientes sentencias SQL:PREPARE,EXECUTE, orDEALLOCATErespectivamente.Com_stmt_fetchrepresenta el número total de comunicaciones de red ejecutadas al recibir datos de los cursoresTodas las variablesCom_stmt_son incrementadas aunque el argumento de una sentencia preparada sea desconocido u ocurra un error durante la ejecución. Es decir, sus valores corresponden al número de peticiones recibidas, no al número de peticiones completadas con éxito.xxxConnectionsEl número de instentos de conexión (con éxito o no) al servidor MySQL.Created_tmp_disk_tablesEl número de tablas temporales en disco creadas automáticamente por el servidor mientras ejecutaba sentencias.Created_tmp_filesNúmero de arhcivos temporales que mysqld ha creado.Created_tmp_tablesEl número de tablas temporales en memoria creadas automáticamente por el servidor mientras ejecuta sentencias. SiCreated_tmp_disk_tableses grande, quizá querría aumentar el valor detmp_table_sizepara causar que las tablas sean basadas en memoria en vez de basadas en disco.Delayed_errorsEl número de registros escritos conINSERT DELAYEDen los que algún error ocurrió (probablementeduplicate key).Delayed_insert_threadsEl número de hilos gestores deINSERT DELAYEDen uso.Delayed_writesEl número de registrosINSERT DELAYEDescritosFlush_commandsEl número de comandosFLUSHejecutados.Handler_commitEl número de sentenciasCOMMITinternas.Handler_discoverEl servidor MySQL puede preguntar al motor de almacenamientoNDB Clustersi conoce una tabla con un nombre dado. Esto se llama descubrimiento (discovery).Handler_discoverindica el número de veces que se han descubierto tablas mediante este mecanismo.Handler_deleteEl número de veces que se han borrado registros de tablas.Handler_read_firstEl número de veces que se lee la primera entrada de un índice. Si este valor es alto, indica que el servidor está haciendo muchos escaneos "full index"; por ejemplo,SELECT col1 FROM foo, suponiendo quecol1está indexada.Handler_read_keyEl número de peticiones para leer un registro basadas en una clave. Si este número es alto, es una buena indicación de que las consultas y tablas están indexadas adecuadamente.Handler_read_nextEl número de peticiones para leer el siguiente registro en el orden de la clave. Esto se incrementa cada vez que se está consultando una columna indexada con una restricción de rango, o si se está haciendo un escaneo de índice.Handler_read_prevEl número de peticiones para leer el registro previo en el orden de la clave. Este método de lectura es utilizado principalmente para optimizarORDER BY ...DESC.Handler_read_rndEl número de peticiones para leer un registro basándose en una posición fija. Es alto si se están haciendo muchas consultas que requieren ordenación del resultado. Probablemente tenga muchas consultas que requieran que MySQL escanee tablas completas o tiene joins que no utilizan claves adecuadamente.Handler_read_rnd_nextEl número de peticiones para leer el siguiente registro en el archivo de datos. Éste es alto si está haciendo muchos escaneos de tablas. Generalmente esto sugiere que las tablas no están indexadas adecuadamente o que las consultas no están escritas para obetner ventaja de los índices que se tienen.Handler_rollbackEl número de sentenciasROLLBACKinternas.Handler_updateEl número de peticiones de modificación de un registro en una tabla.Handler_writeEl número de peticiones de inserción de un registro en una tabla.Innodb_buffer_pool_pages_dataEl número de páginas que contienen datos (procesados o no). Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_dirtyEl número de páginas sin procesar. Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_flushedEl número de páginas del buffer sobre las que se ha hecho una petición de volcado. Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_freeEl número de páginas libres. Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_latchedEl número de páginas bloqueadas en el bufferInnoDB. Estas son las páginas que están siendo actualmente leidas o escritas o que no pueden ser volcadas o borradas por alguna otra razón. Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_miscEl número de páginas ocupadas porque han sido seleccionadas para procesos administrativos, como bloqueos de registro o el índice de hash adaptativo. Este valor puede ser también calculado comoInnodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free-Innodb_buffer_pool_pages_data. Añadido en MySQL 5.0.2.Innodb_buffer_pool_pages_totalTamaño total del buffer, en páginas. Añadido en MySQL 5.0.2.Innodb_buffer_pool_read_ahead_rndEl número de lecturas avanzadas ``aleatorias'' queInnoDBha iniciado. Esto pasa cuando una consulta necesita escanear una gran poción de una tabla pero en orden aleatorio. Añadido en MySQL 5.0.2.Innodb_buffer_pool_read_ahead_seqEl número de lecturas avanzadas secuenciales queInnoDBha iniciado. Esto pasa cuandoInnoDBrealiza un escaneo secuencial completo de una tabla. Añadido en MySQL 5.0.2.Innodb_buffer_pool_read_requestsEl número de peticiones lógicas de lectura queInnoDBha hecho. Añadido en MySQL 5.0.2.Innodb_buffer_pool_readsEl número de lecturas lógicas del buffer queInnoDBno pudo satisfacer y tuvo que hacer una lectura de una única página. Añadido en MySQL 5.0.2.Innodb_buffer_pool_wait_freeNormalmente, las escrituras al buffer deInnoDBse llevan acabo en segundo plano. Aún así, si es necesario leer o crear una página y no existe ninguna página vacía disponible, entonces es también necesario esperar a que las páginas sean volcadas previamente. Este contador cuenta las instancias de estas esperas. Si el tamaño del buffer ha sido establecido correctamente, este valor debería ser pequeño. Añadido en MySQL 5.0.2.Innodb_buffer_pool_write_requestsEl número de escrituras hechas al buffer deInnoDB. Añadido en MySQL 5.0.2.Innodb_data_fsyncsEl número de operacionesfsync()total. Añadido en MySQL 5.0.2.Innodb_data_pending_fsyncsEl número de operacionesfsync()pendientes. Añadido en MySQL 5.0.2.Innodb_data_pending_readsEl número actual de lecturas pendientes. Añadido en MySQL 5.0.2.Innodb_data_pending_writesEl número actual de escrituras pendientes. Añadido en MySQL 5.0.2.Innodb_data_readEl total de datos leidos, en bytes. Añadido en MySQL 5.0.2.Innodb_data_readsEl número total de lecturas de datos. Añadido en MySQL 5.0.2.Innodb_data_writesEl número total de escrituras de datos. Añadido en MySQL 5.0.2.Innodb_data_writtenEl total de datos escritos, en bytes. Añadido en MySQL 5.0.2.Innodb_dblwr_writes,Innodb_dblwr_pages_writtenEl número de operaciones doublewrite que se han ejecutado y el número de páginas que se han escrito para ello. Añadido en MySQL 5.0.2. Consulte Sección 15.14.1, “E/S de disco (Disk I/O)”.Innodb_log_waitsEl número de esperas debidas a que el registro del buffer era demasiado pequeño y se tuvo que esperar a que fuese volcado antes de continuar. Añadido en MySQL 5.0.2.Innodb_log_write_requestsEl número de peticiones de escritura al registro. Añadido en MySQL 5.0.2.Innodb_log_writesEl número de escrituras físicas al archivo de registro. Añadido en MySQL 5.0.2.Innodb_os_log_fsyncsEl número de escriturasfsync()realizadas al archivo de registro. Añadido en MySQL 5.0.2.Innodb_os_log_pending_fsyncsEl número de operacionesfsync()del archivo de registro. Añadido en MySQL 5.0.2.Innodb_os_log_pending_writesEscrituras del archivo de registro pendientes. Añadido en MySQL 5.0.2.Innodb_os_log_writtenEl número de bytes escritos al archivo de registro. Añadido en MySQL 5.0.2.Innodb_page_sizeEl tamaño de página con que se compilóInnoDB(16KB por defecto). Muchos valores son contados en páginas; el tamaño de página permite convertirlos fácilmente a bytes. Añadido en MySQL 5.0.2.Innodb_pages_createdEl número de páginas creadas. Añadido en MySQL 5.0.2.Innodb_pages_readEl número de páginas leidas. Añadido en MySQL 5.0.2.Innodb_pages_writtenEl número de páginas escritas. Añadido en MySQL 5.0.2.Innodb_row_lock_current_waitsEl número de bloqueos de registro por el que se está esperando. Añadido en MySQL 5.0.3.Innodb_row_lock_timeEl tiempo total gastado en adquirir bloqueos de registro, en milisegundos. Añadido en MySQL 5.0.3.Innodb_row_lock_time_avgEl tiempo medio gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.Innodb_row_lock_time_maxEl tiempo máximo gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.Innodb_row_lock_waitsEl número de veces que se ha tenido que esperar por un bloqueo de registro. Añadido en MySQL 5.0.3.Innodb_rows_deletedEl número de registros borrados de tablasInnoDB. Añadido en MySQL 5.0.2.Innodb_rows_insertedEl número de registros insertados en tablasInnoDB. Añadido en MySQL 5.0.2.Innodb_rows_readEl número de registros leidos desde tablasInnoDB. Añadido en MySQL 5.0.2.Innodb_rows_updatedEl número de registros actualizados en tablasInnoDB. Añadido en MySQL 5.0.2.Key_blocks_not_flushedEl número de bloques de claves en la cache de claves que han cambiado pero todavía no han sido volcados a disco.Key_blocks_unusedEl número de bloques sin utilizar en la cache de claves. Puede utilizar este valor para determinar qué tamaño de la cache de claves está en uso; consulte la discusión dekey_buffer_sizeen Sección 5.3.3, “Variables de sistema del servidor”.Key_blocks_usedEl número de bloques utilizados en la cache de claves. Este valor es una marca de máximo, que indica el número máximo de bloques que han sido nunca utilizados al mismo tiempo.Key_read_requestsEl número de peticiones para leer un bloque de claves de la cache.Key_readsEl número de lecturas físicas de un bloque de claves desde disco. SiKey_readses grande, entonces el valor dekey_buffer_sizees, probablemente, demasiado pequeño. La tasa de fallos de la cache puede ser calculada comoKey_reads/Key_read_requests.Key_write_requestsEl número de peticiones de escritura de un bloque de claves a la cache.Key_writesEl número de escrituras físicas de un bloque de claves a disco.Last_query_costEl coste total de la última consulta compilada tal como ha sido computada por el optimizador de consultas. Es útil para comparar el coste de diferentes planes de ejecución para la misma consulta. El valor por defecto de 0 significa que no se ha compilado ninguna consulta todavía. Esta variable fue añadida en MySQL 5.0.1 con un valor por defecto de -1. En MySQL 5.0.7 el valor por defecto ha cambiado a 0; también en la versión 5.0.7, el ámbito deLast_query_costha cambiado a sesión en vez de global.Max_used_connectionsEl número máximo de conexiones que han sido utilizadas simultáneamente desde que el servidor ha sido iniciado.Not_flushed_delayed_rowsEl número de registros esperando a ser escritos en colas deINSERT DELAY.Open_filesEl número de archivos que están abiertos.Open_streamsEl número de flujos de datos (strems) que están abiertos (utilizados principalmente para el registro).Open_tablesEl número de tablas que están actualmente abiertas.Opened_tablesEl número de tablas que han sido abiertas. SiOpened_tableses grande, probablemente el valor detable_cachees demasiado pequeño.Qcache_free_blocksEl número de bloques de memoria libres en la cache de consultas.Qcache_free_memoryEl total de memoria libre en la cache de consultas.Qcache_hitsEl número de éxitos de la cache.Qcache_insertsEl número de consultas añadidas a la cache.Qcache_lowmem_prunesEl número de consultas que fueron borradas de la cache de consultas debido a baja memoria.Qcache_not_cachedEl número de consultas que no han entrado en la cache (por no ser "cacheables", o debido al parámetroquery_cache_type).Qcache_queries_in_cacheEl número de consultas registradas en la cache.Qcache_total_blocksEl número total de bloques en la cache de consultas.QuestionsEl número de consultas que han sido enviadas al servidor.Rpl_statusEl estado de la replicación a prueba de fallos (todavía no implementado).Select_full_joinEl número de joins que no utilizan índices. Si este valor no es 0, debería comprobar cuidadosamente los índices de sus tablas.Select_full_range_joinEl número de joins que han utilizado una búsqueda por rango en una tabla de referencia.Select_rangeEl número de joins que han usado rangos en la primera table. Normalmente no es algo crítico aunque pueda ser bastante grande.Select_range_checkEl número de joins sin claves que comprueban la utilización de claves después de cada registro. Si esto no es cero, debería comprobar cuidadosamente los índices de sus tablas.Select_scanEl número de joins que han hecho un escaneo total de la primera tabla.Slave_open_temp_tablesEl número de tablas temporales abiertas actualmente por el subproceso SQL esclavo.Slave_runningEste valor esONsi el servidor es un esclavo que está conectado a un servidor maestro.Slave_retried_transactionsNúmero total de veces desde el inicio que el subproceso SQL esclavo de replicación ha intentando alguna transacción. Para la serie de MySQL 5.0, esta variable fue añadida en la versión 5.0.4.Slow_launch_threadsEl número de subprocesos que han tardado en crearse más deslow_launch_timesegundos.Slow_queriesEl número de consultas que han tardado más delong_query_timesegundos. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”.Sort_merge_passesEl número de pasadas que el algoritmo de ordenación ha tenido que hacer. Si este valor es grande, debería considerar incrementar el valor de la variable de sistemasort_buffer_sizeSort_rangeEl número de ordenaciones que fueron realizadas utilizando rangos.Sort_rowsEl número de registros ordenados.Sort_scanEl número de ordenaciones que fueron hechas escaneando la tabla.Ssl_xxxVariables utilizadas para conexiones SSL.Table_locks_immediateEl número de veces que un bloque de tabla ha sido adquirido inmediatamente.Table_locks_waitedEl número de veces que un bloque de tabla no se ha podido adquirir inmediatamente y se ha necesitado una espera. Si esto es alto, y tiene problemas en el rendimiento, debería primero optimizar sus consultas y después, o bien utilizar replicación, o dividir sus tablas.Threads_cachedEl número de subprocesos en la cache de subprocesos.Threads_connectedEl número de conexiones abiertas actualmente.Threads_createdEl número de subprocesos creados para gestionar conexiones. SiThreads_createdes grande, debería incrementar el valor dethread_cache_size. La tasa de éxitos de la cache puede ser calculada comoThreads_created/Connections.Threads_runningEl número de subprocesos que no están durmiendo.UptimeEl número de segundos que el servidor ha estado funcionando ininterrumpidamente.
Fuente:enlace

No hay comentarios:
Publicar un comentario