El servidor mantiene varias variables de sistema que indican cómo está
configurado. Todas ellas tienen valores por defecto. Pueden cambiarse al
arrancar el servidor usando opciones en la línea de comandos o en ficheros
de opciones. La mayoría de ellos pueden cambiarse en tiempo de ejecución
usando el comando SET.
El servidor mysqld mantiene dos clases
de variables. Las variables globales afectan las operaciones globales del
servidor. Las variables de sesión afectan las operaciones para conexiones
individuales de clientes.
Cuando el servidor arranca, inicializa todas las variables globales a sus
valores por defecto. Estos valores pueden cambiarse con las opciones
especificadas en los ficheros de opciones o en la línea de comandos. Una vez
que el servidor arranca, aquellas variables globales que sean dinámicas
pueden cambiarse conectando al servidor y ejectuando el comando
SET GLOBAL .
var_name
Para cambiar una variable global, debe tener el privilegio
SUPER.
El servidor mantiene un conjunto de variables de sesión para cada cliente
que se conecta. Las variables de sesión del cliente se inicializan en tiempo
de conexión usando los valores actuales de las correspondientes variables
globales. Para aquellas variables de sesión que son dinámicas, el cliente
puede cambiarlas mediante un comando SET SESSION
. Cambiar una
var_name
variable de sesión no necesita privilegios especiales, pero un cliente puede
cambiar sólo sus variables de sesión, no las de ningún otro cliente.
Un cambio de una variable global es visible para cualquier cliente que
acceda a esa variable global. Sin embargo, esto afecta a las
correspondientes variables de sesión que se inicializan por la variable
global sólo para clientes que se conecten después del cambio. Esto no afecta
las variables de sesión para cualquier cliente que ya esté conectado
(tampoco para los clientes que ejecuten el comando SET
).
GLOBAL
Cuando se cambia una variable usando las opciones de arranque, los
valores de la variable pueden darse con un sufijo K,
M, o G para
indicar kilobytes, megabytes, o gigabytes, respectivamente. Por ejemplo, el
siguiente comando arranca el servidor con un tamaño de key buffer de 16
megabytes:
mysqld --key_buffer_size=16M
No importa que los sufijos se escriban en mayúscula o minúscula;
16M y 16m son
equivalentes.
En tiempo de ejecución, use el comando SET
para cambiar las variables de sistema. En este contexto, los sufijos no
pueden usarse, pero el valor puede tomar la forma de una expresión:
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
Para espeficicar explícitamente si desea cambiar la variable global o de
sesión use la opción GLOBAL o
SESSION:
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;
Sin dicha opción, el comando actualiza la variable de sesión.
Las variables que pueden cambiarse en tiempo de ejecución se listan en
Sección 5.3.3.1, ?Variables de sistema dinámicas?.
Si desea restringir el valor máximo que puede tomar una variable de
sistema con el comando SET , puede
especificarlo con --maximum-
var_name
en el arranque del servidor. Por ejemplo, para evitar que el valor de
query_cache_size se incremente por encima de
32MB en tiempo de ejecución, use la opción
.
--maximum-query_cache_size=32M
Puede consultar las variables de sistema y sus valores usando el comando
SHOW VARIABLES . Consulte
Sección 9.4, ?Variables de sistema? para más información.
mysql> SHOW VARIABLES;
+---------------------------------+---------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | / |
| bdb_cache_size | 8388600 |
| bdb_home | /var/lib/mysql/ |
| bdb_log_buffer_size | 32768 |
| bdb_logdir | |
| bdb_max_lock | 10000 |
| bdb_shared_data | OFF |
| bdb_tmpdir | /tmp/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 5 |
| datadir | /var/lib/mysql/ |
| date_format | %Y-%m-%d |
| datetime_format | %Y-%m-%d %H:%i:%s |
| div_precision_increment | 4 |
| default_week_format | 0 |
| delay_key_write | ON |
| delayed_insert_limit | 100 |
| delayed_insert_timeout | 300 |
| delayed_queue_size | 1000 |
| expire_logs_days | 0 |
| flush | OFF |
| flush_time | 0 |
| ft_boolean_syntax | + -><()~*:""&| |
| ft_max_word_len | 84 |
| ft_min_word_len | 4 |
| ft_query_expansion_limit | 20 |
| ft_stopword_file | (built-in) |
| group_concat_max_len | 1024 |
| have_archive | NO |
| have_bdb | YES |
| have_blackhole_engine | YES |
| have_compress | YES |
| have_crypt | YES |
| have_csv | YES |
| have_example_engine | YES |
| have_federated_engine | YES |
| have_geometry | YES |
| have_innodb | YES |
| have_isam | NO |
| have_ndbcluster | DISABLED |
| have_openssl | NO |
| have_query_cache | YES |
| have_raid | NO |
| have_rtree_keys | YES |
| have_symlink | YES |
| init_connect | |
| init_file | |
| init_slave | |
| innodb_additional_mem_pool_size | 1048576 |
| innodb_autoextend_increment | 8 |
| innodb_buffer_pool_awe_mem_mb | 0 |
| innodb_buffer_pool_size | 8388608 |
| innodb_checksums | ON |
| innodb_concurrency_tickets | 500 |
| innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir | |
| innodb_doublewrite | ON |
| innodb_fast_shutdown | 1 |
| innodb_file_io_threads | 4 |
| innodb_file_per_table | OFF |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_flush_method | |
| innodb_force_recovery | 0 |
| innodb_lock_wait_timeout | 50 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 90 |
| innodb_max_purge_lag | 0 |
| innodb_mirrored_log_groups | 1 |
| innodb_open_files | 300 |
| innodb_sync_spin_loops | 20 |
| innodb_table_locks | ON |
| innodb_support_xa | ON |
| innodb_thread_concurrency | 8 |
| innodb_thread_sleep_delay | 10000 |
| interactive_timeout | 28800 |
| join_buffer_size | 131072 |
| key_buffer_size | 8388600 |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| language | /usr/share/mysql/english/ |
| large_files_support | ON |
| large_pages | OFF |
| large_page_size | 0 |
| license | GPL |
| local_infile | ON |
| locked_in_memory | OFF |
| log | OFF |
| log_bin | OFF |
| log_bin_trust_routine_creators | OFF |
| log_error | |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| long_query_time | 10 |
| low_priority_updates | OFF |
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
| max_allowed_packet | 1048576 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_connect_errors | 10 |
| max_connections | 100 |
| max_delayed_threads | 20 |
| max_error_count | 64 |
| max_heap_table_size | 16777216 |
| max_insert_delayed_threads | 20 |
| max_join_size | 4294967295 |
| max_length_for_sort_data | 1024 |
| max_relay_log_size | 0 |
| max_seeks_for_key | 4294967295 |
| max_sort_length | 1024 |
| max_tmp_tables | 32 |
| max_user_connections | 0 |
| max_write_lock_count | 4294967295 |
| multi_range_count | 256 |
| myisam_data_pointer_size | 6 |
| myisam_max_sort_file_size | 2147483647 |
| myisam_recover_options | OFF |
| myisam_repair_threads | 1 |
| myisam_sort_buffer_size | 8388608 |
| engine_condition_pushdown | OFF |
| ndb_autoincrement_prefetch_sz | 32 |
| ndb_force_send | ON |
| ndb_use_exact_count | ON |
| ndb_use_transactions | ON |
| ndb_cache_check_time | 0 |
| net_buffer_length | 16384 |
| net_read_timeout | 30 |
| net_retry_count | 10 |
| net_write_timeout | 60 |
| new | OFF |
| old_passwords | OFF |
| open_files_limit | 1024 |
| optimizer_prune_level | 1 |
| optimizer_search_depth | 62 |
| pid_file | /var/lib/mysql/gigan.pid |
| port | 3306 |
| preload_buffer_size | 32768 |
| protocol_version | 10 |
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
| range_alloc_block_size | 2048 |
| read_buffer_size | 131072 |
| read_only | OFF |
| read_rnd_buffer_size | 262144 |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| rpl_recovery_rank | 0 |
| secure_auth | OFF |
| server_id | 0 |
| skip_external_locking | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
| slave_compressed_protocol | OFF |
| slave_load_tmpdir | /tmp/ |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| slow_launch_time | 2 |
| socket | /var/lib/mysql/mysql.sock |
| sort_buffer_size | 2097144 |
| sql_mode | |
| storage_engine | MyISAM |
| sql_notes | OFF |
| sql_warnings | OFF |
| sync_binlog | 0 |
| sync_replication | 0 |
| sync_replication_slave_id | 0 |
| sync_replication_timeout | 10 |
| sync_frm | ON |
| system_time_zone | EST |
| table_cache | 64 |
| table_type | MyISAM |
| thread_cache_size | 0 |
| thread_stack | 196608 |
| time_format | %H:%i:%s |
| time_zone | SYSTEM |
| timed_mutexes | OFF |
| tmp_table_size | 33554432 |
| tmpdir | |
| transaction_alloc_block_size | 8192 |
| transaction_prealloc_size | 4096 |
| tx_isolation | REPEATABLE-READ |
| updatable_views_with_limit | YES |
| version | 5.0.7-beta-Max |
| version_bdb | Sleepycat Software: Berkeley DB 4.1.24: (June 11, 2005) |
| version_comment | MySQL Community Edition - Max (GPL) |
| version_compile_machine | i686 |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 28800 |
+---------------------------------+---------------------------------------------------------+
219 rows in set (0.00 sec)
La mayoría de variables de sistema se describen aquí. Las variables sin
versión indican que están presentes en todas las versiones de MySQL 5.0.
Para información histórica acerca de sus implementaciones, consulte
Manual de referencia de MySQL 4.1. Las variables
de sistema InnoDB están listadas en
Sección 15.4, ?Opciones de arranque de InnoDB?.
Los valores para tamaños de buffer, longitudes y tamaño de pila se dan en
bytes a no ser que se especifique otra unidad.
Información sobre el ajuste de estas variables se encuentra en
Sección 7.5.2, ?Afinar parámetros del servidor?.
auto_increment_increment
auto_increment_incrementy
auto_increment_offsetestán pensados
para usarse con replicación maestro-a-maestro, y puede usarse para
controlar la operación de columnas. Ambas variables pueden cambiarse global o
AUTO_INCREMENT
localmente, y cada una de ellas puede tomar un valor entre 1 y
65.535 incluídos. Cambiar el valor de estas variables a 0 causa que
su valor sea 1. Intentar cambiar el valor de cualquiera de estas
variables a un entero mayor que 65,535 o menor a 0 causa que su
valor sea 65,535. Intentar cambiar el valor deo de
auto_increment_incrementcon un valor no entero da un error, y
auto_increment_offset
el valor de la variable no se cambie en ese caso.
Estas dos variables afectan al comportamiento de la columnas
AUTO_INCREMENTasí:
auto_increment_increment
controla el intervalo en que se incrementa el valor de
columna. Por ejemplo:
mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> CREATE TABLE autoinc1 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.04 sec)
mysql> SET @auto_increment_increment=10;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 1 |
+--------------------------+-------+
2 rows in set (0.01 sec)
mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
| 1 |
| 11 |
| 21 |
| 31 |
+-----+
4 rows in set (0.00 sec)
(Note cómo se usa
SHOW VARIABLES
para obtener el valor actual de estas variables.)auto_increment_offset
determina el punto de inicio para el valor de las columnas
AUTO_INCREMENT. Considere lo
siguiente, asumiendo que estos comandos se ejecutan durante
la misma sesión que el ejemplo anterior:
mysql> SET @auto_increment_offset=5;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 5 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> CREATE TABLE autoinc2 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.06 sec)
mysql> INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc2;
+-----+
| col |
+-----+
| 5 |
| 15 |
| 25 |
| 35 |
+-----+
4 rows in set (0.02 sec)
Si el valor de
es mayor que el de
auto_increment_offset
auto_increment_increment,
entonces el valorse ignora.
auto_increment_offset
Si una o ambas variables se cambian y los nuevos registros
insertados en una tabla que contengan una columna
AUTO_INCREMENT, el resultado puede ser
no intuitivo, como los valores de las series de
AUTO_INCREMENTse calculan sin tener en
cuenta los valores ya existentes en la columna, y el siguiente valor
insertado es el menor valor de la serie que es mayor al máximo valor
existente en la columnaAUTO_INCREMENT
. En otras palabras, la serie se calcula así:
auto_increment_offset +
N*
auto_increment_increment
donde
Nes un entero
positivo en la serie [1, 2, 3, ...]. Por ejemplo:
mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 10 |
| auto_increment_offset | 5 |
+--------------------------+-------+
2 rows in set (0.00 sec)
mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
| 1 |
| 11 |
| 21 |
| 31 |
+-----+
4 rows in set (0.00 sec)
mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> SELECT col FROM autoinc1;
+-----+
| col |
+-----+
| 1 |
| 11 |
| 21 |
| 31 |
| 35 |
| 45 |
| 55 |
| 65 |
+-----+
8 rows in set (0.00 sec)
Los valores mostrados por
y
auto_increment_incrementgeneran las series 5 +
auto_increment_offset
N* 10, esto es, [5, 15,
25, 35, 45, ...]. El mayor valor presente en la columna
colantes deles 31, y el siguiente valor disponible en la serie
INSERT
AUTO_INCREMENTes 35, así que los
valores insertados paracolempiezan en
ese punto y los resultados se muestran para la consulta
SELECT.
Es importante recordar que no es posible confinar los efectos de
estas dos variables en una sola tabla, y por lo tanto no toman el
lugar de la secuencia ofrecido por otros sistemas gestores de bases
de datos; estas variables controlan el comportamiento de todas las
columnasAUTO_INCREMENTen
todas las tablas del
servidor MySQL. Si una de estas variables se cambia globalmente,
entonces sus efectos persisten hasta que el valor global se cambia o
subyace al cambiarlo localmente, o hasta que se reinicia
mysqld ; si se cambia localmente,
entonces el nuevo valor afecta a las columnaspara todas las tablas en que se inserten
AUTO_INCREMENT
nuevos registros por el usuario actual durante la sesión, hasta que
los valores se cambien durante esa sesión.
La variable
auto_increment_increment
se añadió en MySQL 5.0.2. Su valor por defecto es 1. Consulte
Capítulo 6, Replicación en MySQL.auto_increment_offset
Esta variable se añadió en MySQL 5.0.2. Su valor por defecto es
1. Para más detalles, consulte la descripción de
auto_increment_increment.back_log
El numero de peticiones de conexión que puede tener MySQL. Esto
se usa cuando el thread principal de MySQL recibe muchas peticiones
de conexión en un pequeño lapso de tiempo. Necesita algo de tiempo
(aunque muy poco) el thread principal para comprobar la conexión y
empezar un nuevo thread. El valor deback_log
indica cuántas peticiones pueden almacenarse duarnte este corto
espacio de tiempo antes que MySQL temporalmente pare de responder a
nuevas peticiones. Necesita incrementarlo sólo si espera un gran
número de conexiones en un pequeño lapso de tiempo.
En otras palabras, este valor es el tamaño de la cola que escucha
conexiones TCP/IP entrantes. El sistema operativo tiene su propio
límite en el tamaño de la cola. La página del manual para la llamada
de sistema Unixlisten()proporcion más
detalles. Consulte la documentación del SO para el máximo valor de
esta variable. Intentar cambiar el valor depor encima del límite del sistema operativo no es
back_log
efectivo.basedir
El directorio de instalación de MySQL. Esta variable puede
cambiarse con la opción--basedir.
bdb_cache_size
El tamaño del buffer que se utiliza para cachear índices y
registros para tablasBDB. Si no usa
tablasBDBdebe arrancar
mysqld conpara no gastar memoria para esta caché.
--skip-bdbbdb_home
El directorio base para las tablas
BDB
tables. Debe asignarse el mismo valor que para la variable
datadir.bdb_log_buffer_size
El tamaño del buffer que se utiliza para cachear índices y
registros para tablasBDB. Si no usa
tablasBDB, debe usar el valor 0 o
arrancar mysqld con
--skip-bdbpara no gastar memoria con
esta caché.bdb_logdir
El directorio en que el motor de almacenamiento
BDBescribe sus ficheros de log. Esta
variable puede cambiarse con la opción.
--bdb-logdirbdb_max_lock
El máximo número de bloqueos que pueden tenerse activos en una
tablaBDB(10,000 por defecto). Debe
incrementarlo si errores como los siguientes ocurren cuando realiza
transacciones grandes o cuando mysqld
tiene que examinar muchos registros para calcular una consulta:
bdb: Lock table is out of available locks
Got error 12 from ...
bdb_shared_data
Está
ONsi usa.
--bdb-shared-databdb_tmpdir
El valor de la opción
--bdb-tmpdir.
bdb_version
Consulte la versión de
version_bdb.
binlog_cache_size
El tamaño de la caché para tratar comandos SQL para el log
binario durante una transacción. La cache del log binario se guarda
para cada cliente si el servidor soporta diversos motores de
almacenamiento transaccionales, empezando por MySQL 4.1.2, si el
servidor tiene activados los logs binarios (opción
--log-bin). Si suele usar transacciones
grandes, con múltiples comandos, puede incrementar este valor para
mejorar el rendimiento. Las variables de estado
Binlog_cache_usey
Binlog_cache_disk_usepueden ser útiles
para ajustar el tamaño de estas variables. Consulte
Sección 5.10.3, ?El registro binario (Binary Log)?.bulk_insert_buffer_size
MyISAMusa una caché especial con
forma de árbol para hacer las inserciones más rápidas para
INSERT ... SELECT,
INSERT ... VALUES (...), (...), ..., y
LOAD DATA INFILE. Esta variable limita
el tamaño del árbol de la caché en bytes por thread. Cambiarlo a 0
desactiva esta optimización. Nota:
Esta caché se usa sólo al añadir datos en una tabla no vacía. El
valor por defecto es 8MB.character_set_client
El conjunto de carácteres para comandos que llegan del cliente.
character_set_connection
El conjunto de carácteres usado por los literales que no tienen
un conjunto de carácteres introducido y para conversiones de números
a cadenas de carácteres.character_set_database
El conjunto de carácteres usado por la base de datos por defecto.
El servidor actualiza esta variable cada vez que la base de datos
por defecto cambia. Si no hay base de datos por defecto, la variable
toma el mismo valor quecharacter_set_server.
character_set_results
El conjunto de carácteres usado para retornar los resultados de
las consultas al cliente.character_set_server
El conjunto de carácteres por defecto del servidor.
character_set_system
El conjunto de carácteres usado por el servidor para almacenar
identificadores. El valor es siempreutf8.
character_sets_dir
El directorio en el que están instalados los conjuntos de
carácteres.collation_connection
La colación del conjunto de carácteres de las conexiones.
collation_database
La colación usada por la base de datos por defecto. El servidor
cambia esta variable cada vez que la base de datos por defecto
cambia. Si no hay una base de datos por defecto, la variable toma el
valor decollation_server.collation_server
La colación por defecto del servidor.
concurrent_insert
Si
ON(por defecto), MySQL permite
comandosINSERTyque se ejecuten concurrentemente para tablas
SELECT
MyISAMque no tienen bloques libres en
el medio. Puede desactivar esta opción arrancando
mysqld conor
--safe--skip-new.
En MySQL 5.0.6 esta variable ha cambiado a un entero que toma 3
valores:
Valor Descripción 0 Off 1 (Defecto) Permite inserciones concurrentes para
tablas MyISAM que no tienen agujeros2 Permite inserciones concurrentes para todas las
tablas MyISAM. Si la tabla tiene un agujeroy está en uso
por otro thread el nuevo registro se insertará al final
de la tabla. Si la tabla no está en uso, MySQL hará un
bloqueo de lectura normal e insertará el registro en el
agujero.
connect_timeout
El número de segundos que el servidor
mysqld espera para un paquete de conexión antes de
responder conBad handshake.datadir
El directorio de datos de MySQL. Esta variable puede cambiarse
con la opción--datadir.default_week_format
El modo a usar por la función
WEEK().
delay_key_write
Esta opción se aplica sólo a tablas
MyISAM
. Puede tener uno de los siguientes valores que afectan la forma de
tratar la opciónDELAY_KEY_WRITEque
puede usarse en los comandosCREATE TABLE
.
Opción Descrición OFFDELAY_KEY_WRITEse
ignora.ONMySQL activa la opción para
DELAY_KEY_WRITECREATE. Este es el valor por defecto.
TABLEALLTodas las nuevas tablas abiertas se tratan como si
se hubieran creado con la opciónactivada.
DELAY_KEY_WRITE
Si
DELAY_KEY_WRITEestá activo,
significa que el key buffer para tablas con esta opción no se
vuelcan en cada actualización del índice, sino que sólo cuando se
cierra una tabla. Esto acelera las escrituras de claves, pero si usa
esta característica, debe añadir chequeo automático de todas las
tablasMyISAMarrancando el servidor
con la opción--myisam-recover(por
ejemplo--myisam-recover=BACKUP,FORCE).
Consulte
Sección 5.3.1, ?Opciones del comando mysqld?
y
Sección 14.1.1, ?Opciones de arranque de?.
MyISAM
Tenga en cuenta que
--external-locking
no ofrece ninguna protección contra corrupción de índices para
tablas que usan escrituras de claves retardadas.delayed_insert_limit
Tras insertar
delayed_insert_limit
registros retardados, el thread que se encarga del
INSERT DELAYEDcomprueba si hay algún
comandoSELECTpendiente. Si es así,
les permite que se ejecuten antes de continuar insertando registros
retardados.delayed_insert_timeout
Cuánto debe esperar el thread encargado de
para un comando
INSERT DELAYEDINSERT
antes de terminar.delayed_queue_size
Este es el límite por tabla del número de registros a encolar
cuando se tratan comandosINSERT DELAYED
. Si la cola se llena, cualquier cliente que lance un comando
INSERT DELAYEDespera hasta que haya
espacio en la cola de nuevo.expire_logs_days
El número de días para eliminar el log binario automáticamente.
El valor por defecto es 0, lo que significa ``sin eliminación
automática''. Las posibles eliminaciones se realizan al arranque y
en la rotación del log binario.flush
Está
ONsi ha arrancado
mysqld con la opción
--flush.flush_time
Si se asigna un valor distinto a cero, todas las tablas se
cierran cadaflush_timesegundos para
liberar recursos y sincronizar datos no volcados en disco.
Recomendamos que esta opción se use sólo en Windows 9x o Me, o en
sistemas con recursos mínimos.ft_boolean_syntax
La lista de operadores soportado por búsquedas full-text
booleanas usandoIN BOOLEAN MODE.
Consulte
Sección 12.7.1, ?Búsquedas booleanas de texto completo (Full-Text)?.
El valor por defecto de la variable es
'+. Las reglas para cambiar el valor son las
-><()~*:""&|'
siguientes:
- La función del operador viene determinada por su
posición en la cadena de carácteres. - El valor de reemplazo debe tener 14 carácteres.
- Cada carácter debe ser ASCII y no alfanumérico.
- El primer o segundo carácter debe ser un espacio.
- No se permiten duplicados excepto los operadores
delimitadores de frase en las posiciones 11 y 12. Estos dos
carácteres no tienen porqué ser los mismos, pero son los dos
únicos posibles. - Las posiciones 10, 13, y 14 (que por defecto son '
:',
'&', y '|')
están reservados para extensiones futuras.
ft_max_word_len
La longitud máxima de la palabra incluída en un índice
FULLTEXT.
Nota: índices
FULLTEXTdeben reconstruirse al cambiar
esta variable. UseREPAIR TABLE.
tbl_nameQUICK
ft_min_word_len
La longitud mínima de la palabra a incluirse en un índice
FULLTEXT.
Nota: índices
FULLTEXTdeben reconstruirse tras
cambiar estas variables. UseREPAIR TABLE.
tbl_nameQUICK
ft_query_expansion_limit
El número de mejores coincidencias a usar en búsquedas full-text
realizadas usandoWITH QUERY EXPANSION.
ft_stopword_file
El fichero del que lee la lista de palabras de detención en
búsquedas full-text. Todas las palabras del fichero se usan; los
comentarios no se tienen en
cuenta. Por defecto, se usa una lista de palabras de detención (
como se define en el fichero). Actualizar esta variable con una cadena
myisam/ft_static.c
vacía ('') desactiva el filtrado de
palabras de detención.
Nota: índices
FULLTEXTdeben reconstruirse tras
cambiar esta variable o los contenidos del fichero de palabras de
detención. UseREPAIR TABLE.
tbl_nameQUICK
group_concat_max_len
El valor máximo permitido para la longitud del resultado de la
funciónGROUP_CONCAT().have_archive
YESsi
mysqld soporta tablasARCHIVE,
NOsi no.have_bdb
YESsi
mysqld soporta tablasBDB.
DISABLEDsi se usa
--skip-bdb.have_compress
Si está disponible la biblioteca de compresión
zliben el servidor. Si no lo está, las
funcionesCOMPRESS()y
UNCOMPRESS()no pueden usarse.have_crypt
Si la llamada de sistema
crypt()
está disponible en el servidor. Si no, la función
CRYPT()no puede usarse.have_csv
YESsi
mysqld soporta tablasARCHIVE,
NOsi no.have_example_engine
YESsi
mysqld soporta tablasEXAMPLE
,NOsi no.
have_federated_engine
YESsi
mysqld soporta tablasFEDERATED,
NOsi no. Esta variable se añadió en
MySQL 5.0.3.have_geometry
Si el servidor soporta tipos de datos espaciales.
have_innodb
YESsi
mysqld soporta tablasInnoDB.
DISABLEDsi se usa
--skip-innodb.have_isam
En MySQL 5.0, esto aparece sólo por razones de compatibilidad con
versiones anteriores, y siempre esNO,
ya que no hay soporte para tablasISAM.
have_ndbcluster
YESsi
mysqld soporta tablasNDB Cluster
.DISABLEDsi se usa
--skip-ndbcluster.have_openssl
YESsi
mysqld soporta SSL (encriptación) del protocolo
cliente/servidor.have_query_cache
YESsi
mysqld soporta la cache de consultas.have_raid
YESsi
mysqld soporta la opciónRAID
.have_rtree_keys
Si los índices
RTREEestán
disponibles. (Se usan para indexación espacial en tablas
MyISAM.)have_symlink
Si el soporte para enlaces simbólicos está activado. Es un
requesito en Unix para soporte de las opciones de tabla
DATA DIRECTORYy.
INDEX DIRECTORY
init_connect
Una cadena de carácteres que ejecuta el servidor para cada
cliente que se conecta. La cadena consiste en uno o más comandos
SQL. Para especificar varios comandos, sepárelos con un punto y
coma. Por ejemplo, cada cliente arranca por defecto con modo
autocommit activado. No hay ninguna variable de servidor global para
especificar que autocommit esté desactivado por defecto, pero puede
usarinit_connectpara conseguir el
mismo efecto:
SET GLOBAL init_connect='SET AUTOCOMMIT=0';
Esta variable puede cambiarse en la línea de comandos o en un
fichero de opciones. Para cambiar la variable tal y como se ha
mostrado usando un fichero de opciones, incluya las siguientes
líneas:
[mysqld]
init_connect='SET AUTOCOMMIT=0'
Tenga en cuenta que el contenido de
no se ejecuta para usuarios con el privilegio
init_connect
SUPER; esto es para el caso que el
contenido se haya introducido incorrectamente (contiene una consulta
incorrecta, por ejemplo con un error de sintaxis), haciendo que
todas las conexiones fallen. No ejecutarlo para usuarios
SUPERpermite que éstos abran una
conexión y arregleninit_connect.init_file
El nombre del fichero especificado con la opción
--init-filecuando arranca el servidor.
Este fichero contiene comandos SQL que se ejecutan al arrancar el
servidor. Cada comando debe estar en una única línea y no debe
incluir comentarios.init_slave
Esta variable es similar a
init_connect,
pero es una cadena de carácteres que se ejecuta por parte de un
servidor esclavo cada vez que el thread SQL arranca. El formato de
la cadena de carácteres es el mismo que para la variable
init_connect.innodb_xxx
Las variables
InnoDBde sistema se
listan en
Sección 15.4, ?Opciones de arranque deInnoDB?.
interactive_timeout
El número de segundos que espera el servidor para actividad en
una conexión interactiva antes de cerrarla. Un cliente interactivo
se define como un cliente que usa la opciónpara
CLIENT_INTERACTIVE. Consulte también
mysql_real_connect().
wait_timeoutjoin_buffer_size
El tamaño del buffer que se usa para full joins (joins que no
usan índices). Normalmente la mejor forma de conseguir joins rápidos
es añadir índices. Incrementar el valor depara obtener un full join más rápido cuando
join_buffer_size
se añaden índices no es posible. Un buffer para joins se reserva
para cada full join entre dos tablas. Para un join complejo entre
varias tablas en que sus índices no se usan, buffers para joins
múltiples pueden ser necesarios.
key_buffer_size
Los bloques de índices para tablas
MyISAM
yISAMse guardan en buffers y se
comparten para todos los threads.es el tamaño del buffer usado para los
key_buffer_size
bloques de índices. El key buffer también se conoce como la key
cache.
El tamaño máximo permitido para
es 4GB. El máximo tamaño efectivo puede ser
key_buffer_size
menor, dependiendo de la memoria RAM física y los límites por
proceso de RAM impuestos por el sistema operativo o la plataforma
hardware.
Incremente el valor para obtener un mejor tratamiento de índices
(para todas las lecturas y escrituras múltiples) al máximo que pueda
permitirse. El uso de un valor que sea el 25% del total de memoria
en una máquina que principalmente ejecute MySQL es bastante común.
Sin embargo, si el valor es demasiado grande (por ejemplo, más del
50% del total de la memoria) el sistema puede empezar a paginar y
ser extremadamente lento. MySQL confía en el sistema operativo para
tratar el cacheo del sistema de ficheros para las lecturas de datos,
así que debe dejar algún espacio para cachear el sistema de
ficheros.
Para más velocidad al escribir varios registros al mismo tiempo ,
useLOCK TABLES. Consulte
Sección 13.4.5, ?Sintaxis deLOCK TABLES
yUNLOCK TABLES?.
Puede chequear el rendimiento del key buffer con el comando
