configuración de cinco parámetros de ajuste de mysql

MySQL tuning introducción y configuración de cinco parámetros relacionados


Uno, parámetros del público en general

        Los parámetros de este tipo generalmente no necesitan cambiarse después de la configuración, principalmente para especificar los parámetros generales de mysql.

//指定数据文件存放的目录
datadir=/var/lib/mysql
//指定存储mysql的pid的地方
pid_file=/var/lib/mysql/mysql.pid
//指定mysql服务的端口号
port=3306
//指定mysql存储引擎,在建表时还可以针对每张表单独指定
default_storage_engine=InnoDB
//忘记mysql的密码的时,可以在mysql配置文件中配置该参数,跳过权限表验证,不需要密码即可登录mysql,平常不开。
skip-grant-tables

Dos, parámetros del juego de caracteres

        Puede usar MOSTRAR VARIABLES COMO '% char%'; para ver la configuración de los parámetros del juego de caracteres relacionados.

//设置客户端使用的字符集
character_set_client
//设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置
character_set_connection
//设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置
character_set_database
//文件系统的编码格式,把操作系统上的文件名转化成此字符集
character_set_filesystem
//数据库给客户端返回时使用的编码格式,如果没有指明使用服务器默认的编码格式
character_set_results
//服务器安装时指定的默认编码格式,这个变量不建议去修改
character_set_server
//数据库系统使用的编码格式,存储系统元数据的编码格式
character_set_system
//字符集安装的目录
character_sets_dir

Tres, parámetros de conexión de conexión

        Se utiliza principalmente para especificar los parámetros relevantes de la conexión mysql, que se pueden optimizar según el volumen de negocio y las necesidades reales.

//mysql的最大连接数,如果数据库的并发连接请求比较大,应该调高该值
max_connections
//限制每个用户的连接个数
max_user_connections
//mysql能够暂存的连接数量,当mysql的线程在一个很短时间内得到非常多的连接请求时,就会起作用,如果mysql的连接数量达到max_connections时,
//新的请求会被存储在堆栈中,以等待某一个连接释放资源,如果等待连接的数量超过back_log,则不再接受连接资源
back_log
//关闭一个非交互的连接之前需要等待的时长
wait_timeout
//关闭一个交互连接之前需要等待的秒数
interactive_timeout

Cuatro, parámetros de registro de registro

//指定错误日志文件名称,用于记录当mysqld启动和停止以及服务器在运行中发生任何严重错误的相关信息
log_error
//指定二进制日志文件名称,用于记录对数据造成更改的所有查询语句
log_bin
//指定将更新记录到二进制日志的数据库,其他所有没有显式指定的数据库更新将忽略,不记录在日志中
binlog_do_db
//指定不将更新记录到二进制日志的数据库
binlog_ignore_db
//指定多少次写日志后同步磁盘
sync_binlog
//是否开启查询日志记录
general_log
//指定查询日志文件名,用于记录所有的查询语句
general_log_file
//是否开启慢查询日志记录
slow_query_log
//指定慢查询日志文件名称,用于记录耗时比较长的查询语句
slow_query_log_file
//设置慢查询的时间,超过这个时间的查询语句才会记录日志
long_query_time
//是否将管理语句写入慢查询日志
log_slow_admin_statements

Archivos de registro del motor de almacenamiento innodb

Rehacer registro

        Cuando se modifican los datos, innodb primero escribirá el registro en el registro de rehacer y actualizará la memoria. Incluso si la actualización se completa en este momento, innodb guardará el registro en el disco en el momento apropiado (tres formas) de acuerdo con la estrategia . Para lograr la durabilidad de la transacción.
        El registro de rehacer tiene un tamaño fijo y es un proceso de escritura cíclica. Asegura que los registros antes del reinicio anormal de la base de datos no se perderán.
Tres formas de escribir en memoria y disco

Deshacer registro

        El registro de deshacer se da cuenta de la atomicidad de las transacciones y utiliza el registro de deshacer para realizar el control de concurrencia de múltiples versiones en InnoDB. Antes de operar cualquier dato, primero haga una copia de seguridad de los datos (esta parte de los datos de la copia de seguridad se almacena en el registro de deshacer) y luego modifique los datos. Si se revierte un error, puede usar la copia de seguridad en el registro de deshacer para restaurar los datos al comienzo de la transacción El estado anterior.
        Por ejemplo, el registro lógico de deshacer registro: cuando se elimina el registro, el registro de inserción correspondiente se registrará en el registro de deshacer; cuando se inserta el registro, el registro de eliminación correspondiente se registra en el registro de deshacer; cuando se actualiza el registro, se registra un registro de actualización correspondiente. ser registrado.

archivo de registro del servidor binlog

        Binlog es un registro a nivel de servidor, que hace principalmente cosas a nivel funcional de mysql. Toda la lógica se registrará en Binlog, y la cantidad total de datos se almacenará en forma de escritura adicional. La copia de seguridad se puede realizar con regularidad y usted mismo puede configurar el ciclo de copia de seguridad.

        El proceso de restauración de datos:
        1. Busque los datos de copia de seguridad completos más recientes.
        2. Desde el punto de tiempo de la copia de seguridad, saque el binlog de copia de seguridad y reprodúzcalo en el punto de tiempo que desea restaurar.


        La diferencia entre binlog y redo log:
        1. El registro de rehacer es exclusivo del motor de almacenamiento innodb y todos los motores pueden utilizar binlog.
        2. Rehacer es un registro físico, que registra los cambios que se han realizado en una determinada página de datos, binlog es un registro lógico, que registra esta declaración lógica SQL.
        3. Rehacer se escribe cíclicamente, y el espacio se agotará y se sobrescribirá; binlog se puede escribir adicionalmente y la información del registro anterior no se sobrescribirá.

Proceso de actualización de datos

        1. El ejecutor primero encuentra los datos del motor, si se devuelve directamente en la memoria, si no está en la memoria, regresa después de la consulta.         2. Después de que el
ejecutor obtiene los datos, primero modificará los datos y luego llame a la interfaz del motor para reescribir los datos.
        3. El motor actualiza los datos a la memoria y escribe los datos en el rehacer al mismo tiempo, en este momento se encuentra en la etapa de preparación y notifica al ejecutor que la ejecución está completa.
        4. El actuador genera binlog de funcionamiento de la tapa.
        5. El ejecutor llama a la interfaz de confirmación de transacciones del motor, y el motor cambia el rehacer que se acaba de escribir al estado de confirmación y la actualización está completa.Proceso de actualización de datos de envío de dos etapas

Cinco, parámetros de caché de caché

        key_buffer_size: El tamaño del área del búfer de índice, que solo funciona para las tablas del motor de almacenamiento myisam.
        query cache:
        1>, query_cache_size: tamaño de la caché de consultas, eliminado después de 8.

show status like '%Qcache%';   //查看缓存的相关属性
//缓存中相邻内存块的个数,如果值比较大,那么查询缓存中碎片比较多
Qcache_free_blocks
//查询缓存中剩余的内存大小
Qcache_free_memory
//有多少次命中缓存
Qcache_hits
//有多少次未命中而插入
Qcache_inserts:
//多少条query因为内存不足而被移除cache
Qcache_lowmen_prunes
//当前cache中缓存的query数量
Qcache_queries_in_cache
//当前cache中block的数量
Qcache_total_blocks

        2>, query_cache_limit: las consultas que superen este tamaño no se almacenarán en caché
        3>, query_cache_min_res_unit: tamaño mínimo del bloque de caché
        4>, query_cache_type: tipo de caché, 0 está deshabilitado; 1 significa que todos los resultados se almacenarán en caché, a menos que sql_no_cache se use en el SQL instrucción para deshabilitar la caché de consultas; 2 significa que sql_cache solo especifica las consultas que deben almacenarse en caché en la instrucción select.

        sort_buffer_size: cada hilo que necesita ser ordenado asigna un búfer de este tamaño         max_allowed_packet: limita el tamaño del
paquete aceptado por el servidor
        join_buffer_size: el tamaño del caché asociado
        thread_cache_size: el caché del hilo del servidor, este valor indica que el número de hilos almacenado en la caché se puede reutilizar, si la cantidad de subprocesos es grande durante mucho tiempo, este valor se puede aumentar.
        Threads_cached: representa cuántos subprocesos inactivos hay actualmente en el caché de subprocesos en este momento;
        Threads_connected: representa el número de subprocesos de conexión establecidos actualmente
        Threads_created: representa el número de subprocesos que se han creado durante el último inicio del servicio. Si el valor es relativamente grande , el servidor siempre se creará Thread;
        Threads_running: representa la cantidad de hilos actualmente activados;

Seis parámetros del motor de almacenamiento INNODB

//该参数指定大小的内存来缓冲数据和索引,最大可以设置为物理内存的80%
innodb_buffer_pool_size
//主要控制innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,值分别为0,1,2
innodb_flush_log_at_trx_commit
//设置innodb线程的并发数,默认为0表示不受限制,如果要设置建议跟服务器的cpu核心数一致或者是cpu核心数的两倍
innodb_thread_concurrency
//此参数确定日志文件所用的内存大小,以M为单位
innodb_log_buffer_size
//此参数确定数据日志文件的大小,以M为单位
innodb_log_file_size
//以循环方式将日志文件写到多个文件中
innodb_log_files_in_group
//mysql读入缓冲区大小,对表进行顺序扫描的请求将分配到一个读入缓冲区
read_buffer_size
//mysql随机读的缓冲区大小
read_rnd_buffer_size
//此参数标识为每张表分配一个新的文件
innodb_file_per_table

para resumir

        Este artículo sintoniza principalmente mysql a través de varios parámetros relacionados con mysql. Los más importantes son los parámetros de registro y los parámetros de caché.

Supongo que te gusta

Origin blog.csdn.net/weixin_49442658/article/details/112668392
Recomendado
Clasificación