¡Esta puede ser la serie MySQL más detallada de toda la red! MySQL (optimización del rendimiento, preguntas de la entrevista, funciones)

Einstein dijo: "La paciencia y la perseverancia siempre serán recompensadas". Siempre he tomado esta frase como mi lema, y ​​este lema se ha realizado completamente en "mí" este año.

Todo programador tiene el sueño de una gran fábrica, y yo no soy la excepción. MySQL me preguntó el año pasado cuando entrevisté a Ali. Muchas preguntas relacionadas no fueron respondidas, y hacía frío después de solo dos. Me preparé mucho para la entrevista y recopilé muchas preguntas sobre la entrevista de MySQL.

Funciones de MySQL:

  • Escrito en C y C ++, y probado con una variedad de compiladores para garantizar la portabilidad del código fuente.
  • Admite AIX, FreeBSD, HP-UX, Linux, MacOS, Novell Netware, OpenBSD, OS / 2 Wrap, Solaris, Windows y otros sistemas operativos
  • Las API se proporcionan para varios lenguajes de programación. Estos lenguajes de programación incluyen C, C ++, Python, Java, Perl, PHP, Eiffel, Ruby, Tcl, etc.
  • Admite subprocesos múltiples, aprovecha al máximo los recursos de la CPU
  • Algoritmo de consulta SQL mejorado, mejorando efectivamente la velocidad de consulta
  • Puede usarse como una aplicación separada en el entorno de red cliente-servidor, o como una biblioteca incorporada en otro software para brindar soporte en varios idiomas. Codificaciones comunes como chino GB 2312, BIG5, japonés Shift_JIS, etc. nombre de la tabla de datos y nombre de la columna de datos
  • Proporcione múltiples métodos de conexión de bases de datos como TCP / IP, ODBC y JDBC
  • Proporcionar herramientas de administración para administrar, verificar y optimizar las operaciones de la base de datos.
  • Puede manejar grandes bases de datos con decenas de millones de registros.

Ingrese al mundo de MySQL

1. 21 mejores prácticas para la optimización del rendimiento de MySQL

  • Optimice sus consultas para el almacenamiento en caché de consultas
  • EXPLICA tu consulta SELECT
  • Use LIMIT 1 cuando solo se requiera una fila de datos
  • Indexar el campo de búsqueda
  • Utilice un tipo de ejemplo similar al unirse a la tabla e indexarla
  • Nunca ORDENE AL ALEATORIO ()
  • Evite SELECT *
  • Establezca siempre un ID para cada mesa
  • Use ENUM en lugar de VARCHAR
  • Obtenga asesoramiento de PROCEDURE ANALYZE ()
  • Use NOT NULL tanto como sea posible
  • Declaraciones preparadas
  • Consulta sin búfer
  • Guarde la dirección IP como UNSIGNED INT
  • Las mesas de longitud fija serán más rápidas
  • División vertical
  • Dividir declaraciones grandes DELETE o INSERT
  • Cuanto más pequeña sea la columna, más rápido
  • Elegir el motor de almacenamiento adecuado
  • Elegir el motor de almacenamiento adecuado
  • Cuidado con los "enlaces permanentes"

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

2. Resumen de las preguntas de la entrevista de MySQL

Las preguntas de la entrevista anterior de Ali se han resumido y el contenido de las preguntas específicas de la entrevista se ha organizado en documentos. Este artículo es para la serie MySQL, por lo que a continuación solo se muestran algunos de los problemas de MySQL que me criticaron y me preguntaron cuando entrevistó a Ali por primera vez Este año, Ali encontró un problema con MySQL en la entrevista.

2.1 Los documentos de otros temas (incluidas las respuestas) se pueden obtener enviándome un correo privado [Entrevista].

  1. Explique el concepto y las principales características de la base de datos relacional.
  2. Indíquenos los productos típicos, las características y los escenarios de aplicación de las bases de datos relacionales.
  3. Describa en detalle la clasificación de la declaración SQL y las palabras clave representativas correspondientes.
  4. ¿Qué es la instancia múltiple de MySQL y cómo configurar la instancia múltiple de MySQL?
  5. ¿Cómo fortalecer la seguridad de MySQL, por favor proporcione medidas factibles específicas?
  6. Se ejecutó por error una instrucción SQL en la biblioteca desplegable ¿Cómo recuperar completamente?
  7. Describa el principio de la replicación maestro-esclavo de MySQL y los pasos completos para configurar maestro-esclavo.
  8. ¿Cómo implementa MySQL la replicación maestro-esclavo bidireccional y explica los escenarios de la aplicación?
  9. ¿Cómo MySQL realiza la sincronización en cascada y explica los escenarios de la aplicación?
  10. ¿Cómo resolver el error de replicación maestro-esclavo de MySQL?

2.2 ¿Cuántas preguntas puede responder sobre los temas de las entrevistas de MySQL 55?

  1. Una tabla con una clave primaria de autoincremento de ID. Después de insertar 17 registros, elimine los registros 15, 16, 17, reinicie Mysql e inserte un registro. ¿La ID de este registro es 18 o 15?
  2. ¿Cuáles son las características técnicas de Mysql?
  3. ¿Qué es la tabla Heap?
  4. ¿Cuál es el puerto predeterminado del servidor Mysql?
  5. Comparado con Oracle, ¿cuáles son las ventajas de Mysql?
  6. ¿Cómo distinguir FLOAT y DOUBLE?
  7. ¿Distinguir entre CHAR_LENGTH y LENGTH?
  8. Describa brevemente los nombres de los cuatro niveles de aislamiento de transacciones admitidos por InnoDB en Mysql y las diferencias entre cada nivel.
  9. ¿Cuál es el uso de ENUM en Mysql?
  10. ¿Cómo definir REGEXP?
  11. ¿Cuál es la diferencia entre CHAR y VARCHAR?
  12. ¿Cuál puede ser el tipo de cadena de la columna?
  13. ¿Cómo obtener la versión actual de Mysql?
  14. ¿Qué motor de almacenamiento se utiliza en Mysql?
  15. ¿Qué es el controlador Mysql?
  16. ¿Qué hace TIMESTAMP en el tipo de datos UPDATE CURRENT_TIMESTAMP?
  17. ¿Cuál es la diferencia entre la clave principal y la clave candidata?
  18. ¿Cómo usar el shell de Unix para iniciar sesión en Mysql?
  19. ¿Para qué se utiliza myisamchk?
  20. ¿Cuáles son los comandos de método para el análisis del rendimiento del servidor de base de datos MYSQL?
  21. ¿Cómo controlar el tamaño máximo de la mesa HEAP?
  22. ¿Cuál es la diferencia entre MyISAM Static y MyISAM Dynamic?
  23. ¿Qué es una mesa federada?
  24. Si una tabla tiene una columna definida como TIMESTAMP, ¿qué pasará?
  25. Cuando la columna se establece en INCREMENTO AUTOMÁTICO, ¿qué sucede si alcanza el valor máximo en la tabla?
  26. ¿Cómo puedo saber qué incremento automático se asignó durante la última inserción?
  27. ¿Cómo ve todos los índices definidos para la tabla?
  28. ¿Qué significan% y _ en la instrucción LIKE?
  29. ¿Cómo convertir entre marcas de tiempo de Unix y Mysql?
  30. ¿Qué es el operador de comparación de columnas?
  31. ¿Cómo obtenemos el número de filas afectadas por la consulta?
  32. ¿La consulta de Mysql distingue entre mayúsculas y minúsculas?
  33. ¿Cuál es la diferencia entre las operaciones LIKE y REGEXP?
  34. ¿Cuál es la diferencia entre BLOB y TEXT?
  35. ¿Cuál es la diferencia entre mysql_fetch_array y mysql_fetch_object?
  36. ¿Cómo ejecutamos el modo por lotes en mysql?
  37. ¿Dónde se almacenará la tabla MyISAM y también proporcionará su formato de almacenamiento?
  38. ¿Cuáles son las diferentes tablas en Mysql?
  39. ¿Qué es ISAM?
  40. ¿Qué es InnoDB?
  41. ¿Cómo optimiza Mysql DISTINCT?
  42. ¿Cómo ingresar caracteres como números hexadecimales?
  43. ¿Cómo mostrar las primeras 50 filas?
  44. ¿Cuántas columnas se pueden usar para crear un índice?
  45. ¿Cuál es la diferencia entre NOW () y CURRENT_DATE ()?
  46. ¿Qué tipo de objetos se pueden crear usando la instrucción CREATE?
  47. ¿Cuántos DISPARADORES se permiten en la tabla Mysql?
  48. ¿Qué es un tipo de cadena no estándar?
  49. ¿Cuáles son las funciones comunes de SQL?
  50. Explicar la lista de control de acceso
  51. ¿MYSQL admite transacciones?
  52. ¿Qué tipo de campo es bueno para registrar moneda en mysql?
  53. ¿En qué circunstancias la tabla de datos MYSQL es vulnerable a daños?
  54. ¿Cuáles son las tablas de autoridad relacionadas con mysql?
  55. ¿Qué tipo de cerraduras hay en Mysql?

3. Ajuste del rendimiento y diseño de la arquitectura de MySQL

  • Artículos básicos:
  1. Introducción básica a MySQL
  2. Composición de la arquitectura MySQL
  3. Introducción al motor de almacenamiento MySQL
  4. Gestión de seguridad MySQL
  5. Copia de seguridad y restauración de MySQL

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

  • Artículos de optimización del rendimiento:
  1. Factores relacionados que afectan el rendimiento de MySQLServer
  2. Mecanismo de bloqueo de la base de datos MySQL
  3. Optimización de la consulta de la base de datos MySQL
  4. Optimización del rendimiento del diseño del esquema de la base de datos MySQL
  5. Optimización del rendimiento de MySQLServer
  6. Optimización del motor de almacenamiento común

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

  • Artículos de diseño de arquitectura:
  1. Principios básicos del diseño escalable de MySQL
  2. Diseño escalable de MySQLReplication
  3. Segmentación de datos para el diseño de escalabilidad
  4. Diseño escalable de caché y búsqueda.
  5. MySQLCluster
  6. Ideas y soluciones para el diseño de alta disponibilidad
  7. Diseño de alta disponibilidad de monitoreo MySQL

Arquitectura e historia de MySQL

 

Comparado con otros sistemas de bases de datos, MySQL es un poco diferente, su arquitectura se puede utilizar en una variedad de escenarios diferentes y juega un buen papel, pero también trae algunas dificultades en la selección. MySQL no es perfecto, pero es lo suficientemente flexible para adaptarse a entornos exigentes, como las aplicaciones web. Al mismo tiempo, MySQL puede integrarse en aplicaciones y también puede admitir varios tipos de aplicaciones, como almacenes de datos, software de implementación e indexación de contenido, sistemas redundantes de alta disponibilidad y sistemas de procesamiento de transacciones en línea (OLTP).

 

Si necesita obtenerlo, es problemático con un clic de triple enlace + comentario, y luego agregue VX (tkzl6666) para obtenerlo gratis

Análisis de rendimiento del servidor

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

En nuestra carrera de consultoría técnica, las tres solicitudes de servicio relacionadas con el rendimiento que se encuentran con mayor frecuencia son: cómo confirmar si el servidor ha alcanzado el mejor estado de rendimiento, averiguar por qué una determinada declaración no se ejecuta lo suficientemente rápido y el diagnóstico es descrito por el usuario como Algunos problemas intermitentes con "pausa", "apilamiento" o "atascado". Este capítulo responderá principalmente a estas tres preguntas. Proporcionaremos algunas herramientas y técnicas para optimizar el rendimiento de toda la máquina, optimizar la velocidad de ejecución de una sola declaración y diagnosticar o resolver los problemas que son difíciles de observar (los usuarios de estos problemas a menudo son difíciles de conocer causa raíz, a veces incluso muy Es difícil detectar su existencia).

Optimización del rendimiento de las consultas

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

Lo anterior es cómo diseñar la mejor estructura de tabla de biblioteca y cómo construir el mejor índice, que es esencial para un alto rendimiento. Pero estos no son suficientes, se necesita un diseño razonable de la consulta. Si la consulta está mal escrita, incluso si la estructura de la tabla de la base de datos es razonable y el índice es apropiado, no se puede lograr un alto rendimiento.

Funciones avanzadas de MySQL

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

MySQL ha introducido muchas características avanzadas de la versión 5.0 y 5.1, como particiones, disparadores, etc., que pueden no ser desconocidas para los usuarios con experiencia en otras bases de datos relacionales. Estas nuevas características han atraído a muchos usuarios a comenzar a usar MySQL. Sin embargo, el usuario debe utilizar realmente el rendimiento de estas funciones para saberlo. Aquí le presentaremos cómo se comportan estas características en el mundo real, en lugar de simplemente introducir los datos en el manual de referencia o en los materiales de Yi Chuan.

 

Optimizar la configuración del servidor

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

Aquí explicaremos el proceso de creación de un archivo de configuración confiable para el servidor MySQL. Este es un proceso muy tortuoso, con muchos puntos interesantes de preocupación e ideas dignas de atención. Es necesario prestar atención a estos puntos, porque la forma más rápida de crear una buena configuración no es aprendiendo elementos de configuración, ni preguntando qué elementos de configuración deben establecerse o cómo modificar, ni verificando el comportamiento del servidor y preguntando qué elementos de configuración puede ser Comienza la mejora del rendimiento.

Es mejor comenzar por comprender el kernel y el comportamiento de MySQL. Luego puede usar este conocimiento para guiar la configuración de MySQL Finalmente, puede comparar la configuración deseada con la configuración actual y luego corregir diferencias importantes y valiosas.

 

Copiar

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

La función de replicación incorporada de MySQL es la base para la construcción de aplicaciones de alto rendimiento a gran escala basadas en MySQL, que utilizan la llamada arquitectura de "expansión horizontal". Podemos sincronizar datos configurando una o más bases de datos en espera 1 para el servidor. La función de replicación no solo favorece la creación de aplicaciones de alto rendimiento, sino también la base para el trabajo de alta disponibilidad, escalabilidad, recuperación ante desastres, respaldo y almacenamiento de datos. De hecho, la escalabilidad y la alta disponibilidad suelen ser temas relacionados, que profundizaremos en los próximos tres capítulos.

 

MySQL escalable

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

Aquí se mostrará cómo construir una aplicación basada en MySQL, y cuando la escala se vuelve cada vez más grande, puede garantizar una rápida, eficiente y económica. Algunas aplicaciones solo son adecuadas para uno o unos pocos servidores, entonces, ¿qué recomendaciones de escalabilidad están relacionadas con estas aplicaciones? La mayoría de las personas nunca mantienen sistemas a gran escala y, por lo general, no se pueden imitar en las grandes empresas convencionales. La estrategia utilizada. Este capítulo cubrirá esta serie de estrategias. Hemos establecido o ayudado en el establecimiento de muchas aplicaciones, incluidas aplicaciones desde un solo servidor o una pequeña cantidad de servidores hasta aplicaciones que utilizan miles de servidores. La elección de una estrategia adecuada puede ahorrar mucho tiempo y dinero. MySQL es a menudo criticado por ser difícil de escalar. En algunos casos, esta vista es correcta, pero si eliges la arquitectura correcta y la implementas bien, puedes escalar MySQL muy bien. Pero la escalabilidad no es un tema bien entendido, así que solucionemos los puntos que son fáciles de confundir.

 

MySQL en la nube

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

 

Optimización de la capa de aplicación

Si dedica demasiado tiempo a mejorar el rendimiento de MySQL, es fácil limitar su visión al mismo MySQL e ignorar la experiencia del usuario. Mirando hacia atrás, puede darse cuenta de que quizás MySQL se ha optimizado lo suficiente para representar una proporción muy pequeña del tiempo de respuesta que ven los usuarios. En este momento, se debe prestar atención a otras partes. Este es un punto muy bueno, especialmente para los administradores de bases de datos, es lo correcto. Pero si no es MySQL, ¿qué está causando el problema? Usando las técnicas mencionadas en el Capítulo 3, la respuesta se puede dar de manera rápida y precisa mediante la medición. Si puede analizar el proceso lógico de la aplicación de principio a fin, generalmente no es difícil encontrar la fuente del problema. A veces, aunque el problema está en MySQL, se puede resolver fácilmente en otra parte del sistema.

Copia de seguridad y restaurar

Si no elabora un plan alternativo con anticipación, es posible que se haya perdido algunas de las mejores opciones en el futuro. Por ejemplo, después de haber configurado el servidor, recordé que debería usarse LVM para poder tomar una instantánea del sistema de archivos, pero ya era demasiado tarde. Al configurar los parámetros del sistema para la copia de seguridad, es posible que no note que ciertas configuraciones del sistema tienen un impacto importante en el rendimiento. Si no hay un plan para hacer ejercicios de recuperación regulares, cuando la recuperación es realmente necesaria, encontrará que no es tan fácil.

Herramientas de usuario de MySQL

El paquete de lanzamiento del servidor MySQL no incluye herramientas para muchas tareas comunes, como herramientas para monitorear servidores o comparar datos entre diferentes servidores. Afortunadamente, la versión comercial de Oracle proporciona algunas herramientas ampliadas, y la comunidad activa de código abierto de MySQL y las empresas de terceros también proporcionan una serie de herramientas, lo que reduce la necesidad de "reinventar la rueda".

Lista

¡tan increíble!  Huawei Daniel finalmente explicó MySQL claramente (básico + optimización + arquitectura)

Supongo que te gusta

Origin blog.csdn.net/m0_46874920/article/details/113660164
Recomendado
Clasificación