Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo mejorar la eficiencia de la escritura escribiendo el contenido de múltiples archivos TXT en una base de datos MYSQL con 100 millones de datos? Solicite a los expertos que modifiquen el siguiente código.

¿Cómo mejorar la eficiencia de la escritura escribiendo el contenido de múltiples archivos TXT en una base de datos MYSQL con 100 millones de datos? Solicite a los expertos que modifiquen el siguiente código.

Cuando un usuario no root ejecuta MySQL y la configuración de MySQL es alta, los valores efectivos de los parámetros operativos de MySQL son diferentes a los valores configurados, por lo que es necesario analizar específicamente cómo MySQL ajusta estos valores de los parámetros. El propósito de este artículo es explicar cómo MySQL ajusta estos tres parámetros cuando los recursos del sistema son insuficientes. Este artículo cubre los tres parámetros open_files_limit, max_connections y table_open_cache. El recurso del sistema relacionado con estos tres parámetros es el límite en la cantidad de archivos que se pueden abrir, es decir, el límite del descriptor de archivo (fd). La relación entre los parámetros del sistema y los descriptores de archivos es: -?-Cada conexión MySQL requiere un descriptor de archivo: Cada conexión MySQL requiere un descriptor de archivo -?table_open_cache?amp;?fd?Al menos un descriptor de archivo, por ejemplo, dos fds son; requerido para abrir MyISAM: la cantidad máxima de archivos abiertos en el sistema se puede ver usando "ulimit -n". Cómo ajustar los parámetros en MySQL

1. Calcule request_open_files (descriptores de archivos requeridos) según la configuración (valores de configuración o valores predeterminados de los tres parámetros); Obtenga el límite de Effective_open_files del valor del sistema;

3. Ajuste request_open_files (descriptor de archivo requerido);

4. 3. ¿Ajustar request_open_files según Effective_open_files;? 4. Según los request_open_files ajustados, calcule los valores de parámetros efectivos reales (mostrar variables, ver valores de parámetros). Calcular request_open_files: Hay tres fórmulas que se pueden usar para calcular request_open_files: 1. ?// max_connections max_number_of_tables_opened_at_the_same_time otros (varios registros, etc.) 2. limit_1= max_connections table_cache_size * 2 10; la conexión se abre en la tabla Número promedio (2-4) 5.// El código fuente está escrito así: 6.// Intentamos asignar no menos de 7.// max_connections*5 archivos manejan 8.limit_2= max_connections * 5; 9.10.//limit_3 = open_files_limit ? open_files_limit: 5000; 12.request_open_files= max(limit_1, limit_2, limit_3); Calcular Effective_open_files: ?MySQL piensa:?

MySQL intenta establecer el valor de Effective_open_files lo más grande posible dentro del rango de valores limitado.

Reparar request_open_files

requested_open_files= min( Effective_open_files,?request_open_files)

Recalcular valores de parámetros

Reparar open_files_limit

open_files_limit?=? Effective_open_files

Reparar max_connections

max_connections?limit = request_open_files - 10 - TABLE_OPEN_CACHE_MIN * 2;

Si el valor de configuración de max_connections es mayor que límite, entonces el valor de max_connections se corregirá para limitar

De lo contrario, max_connections conserva el valor configurado.

Tamaño_cache_tabla correcto

El tamaño_cache_tabla se corregirá según request_open_files. 1. ?// mysql table_cache_size mínimo, 4002.limit1 = TABLE_OPEN_CACHE_MIN3.?// Calcular 4.limit2 = (requested_open_files - 10 - max_connections) / 25.limit = max(limit1, limit2); el valor de table_cache_size configurado es mayor que el límite, el valor de table_cache_size se corregirá para limitar

De lo contrario, table_cache_size conserva el valor configurado

Ejemplo

Lo siguiente los casos de uso se utilizan en usuarios no ejecutados como root

Configuración de parámetros:

//mysql

max_connections = 500

table_open_cache = 999

>ulimit -n?

1500

Valores válidos:

open_files_limit = 1500 max_connections = min = 500

table_ open_cache = (1500 - 10 - 500) / 2 = 495