¡Ali de seis lados pierde! Acabo de aprender los conceptos básicos de MySQL y la optimización subyacente, y obtuve la oferta de Meituan

Como desarrollador de back-end, MySQL es una de las bases de datos relacionales más utilizadas en el trabajo. Con el rápido desarrollo de Internet móvil, la arquitectura de clústeres se ha convertido en una tendencia generalizada y los requisitos de alta concurrencia y alta disponibilidad de la base de datos son cada vez más altos.

Si el solicitante tiene la capacidad de controlar los mecanismos y principios subyacentes se ha convertido en un criterio de evaluación importante para que las empresas de Internet seleccionen talentos. Si solo permanece en el nivel de operación básico de construir una base de datos, crear una tabla, agregar, eliminar y verificar, tarde o temprano será eliminado por la empresa.

Dé tres castañas (preguntadas con frecuencia por los entrevistadores):

  • ¿Cómo mejorar el rendimiento de las consultas?
  • ¿Cómo superar el cuello de botella de rendimiento de una sola biblioteca?
  • ¿Cómo lograr alta concurrencia y alta disponibilidad de la base de datos?

A continuación, para evitar que se tropiece con preguntas, he compilado un documento PDF para entrevistas comunes de MySQL para que todos puedan verificar y llenar las vacantes.

  • Características del documento: organización clara, combinación de gráficos y texto, fácil de entender
  • Para tener una mejor experiencia de lectura para todos, aquí solo se muestra una parte del contenido de cada punto de conocimiento, si necesita estudiar el contenido de este documento de manera sistemática

1. Conocimientos básicos de bases de datos

1. Por qué utilizar una base de datos

2. ¿Qué es SQL?

El lenguaje de consulta estructurado (lenguaje de consulta estructurado) denominado SQL, es un lenguaje de consulta de base de datos.

Rol: utilizado para acceder a datos, consultar, actualizar y administrar sistemas de bases de datos relacionales.

3. ¿Qué es MySQL?

MySQL es un sistema de gestión de bases de datos relacionales, desarrollado por la empresa sueca MySQL AB, bajo el paraguas de Oracle

producto. MySQL es uno de los sistemas de administración de bases de datos relacionales más populares. En términos de aplicaciones web, MySQL es el más popular

Buena aplicación RDBMS (sistema de gestión de bases de datos relacionales, sistema de gestión de bases de datos relacionales)

Uno de los software. Se utiliza con mucha frecuencia en el desarrollo de Java a nivel empresarial, porque MySQL es de código abierto, gratuito y fácil de ampliar.

4 、…

Dos, tipo de datos

1. ¿Qué tipos de datos tiene mysql?

3. Motor

1. La diferencia entre el motor de almacenamiento MySQL MyISAM e InnoDB

Motor de almacenamiento: cómo se almacenan los datos, índices y otros objetos en MySQL, es un conjunto

Implementación del sistema de archivos.

Los motores de almacenamiento más utilizados son los siguientes:

** Motor Innodb: ** El motor Innodb proporciona soporte para transacciones ACID de bases de datos. Y también proporciona bloqueo a nivel de fila

Y restricciones de clave externa. El objetivo de su diseño es manejar un sistema de base de datos con gran capacidad de datos.

Motor MyIASM: (originalmente el motor predeterminado de Mysql): no proporciona soporte para transacciones, ni admite bloqueos de nivel de fila ni claves externas.

** Motor de MEMORIA: ** Todos los datos están en la memoria, la velocidad de procesamiento de datos es rápida, pero la seguridad no es alta.

2. La diferencia entre MyISAM e InnoDB

3. Cuatro características principales del motor InnoDB

  • Insertar búfer
  • Escritura doble
  • Índice hash adaptativo (ahi)
  • 预 读 (leer adelante)

4. Selección del motor de almacenamiento

Si no hay ningún requisito especial, simplemente use el Innodb predeterminado.

MyISAM: Aplicaciones que se centran en la lectura y la escritura, como sistemas de blogs y portales de noticias.

Innodb: la frecuencia de la operación de actualización (eliminación) también es alta, o para garantizar la integridad de los datos; alta concurrencia, soporte para transacciones y

Clave externa. Como el sistema de oficina automatizado OA.

Cuatro, índice

1. ¿Qué es un índice?

2. ¿Cuáles son las ventajas y desventajas de los índices?

3. Escenarios de uso de índices (énfasis)

4. ¿Cuáles son los tipos de índices?

5. Estructura de datos del índice (árbol b, hash)

6. Principios básicos de indexación

7. ¿Qué son los algoritmos de indexación?

8. ¿El principio del diseño de índices?

9, el principio de crear un índice (la máxima prioridad)

10. Tres formas de crear un índice, eliminar un índice

11. ¿A qué debo prestar atención al crear un índice?

12. ¿Puede la consulta de índice mejorar definitivamente el rendimiento de la consulta? ¿por qué?

13. Cómo eliminar millones de datos o más

14. Índice de prefijo

15. ¿Cuál es el principio del prefijo más a la izquierda? ¿Cuál es el principio de coincidencia más a la izquierda?

16. La diferencia entre el árbol B y el árbol B +

17. Los beneficios de utilizar árboles B

18. Los beneficios de utilizar árboles B +

19. ¿Cuál es la diferencia o los pros y los contras entre el índice Hash y el árbol B +?

20. ¿Por qué la base de datos usa árboles B + en lugar de árboles B?

21. El árbol B + no necesita volver a la tabla para consultar los datos cuando cumple con el índice agrupado y el índice de cobertura.

22. ¿Qué es un índice agrupado? ¿Cuándo usar el índice agrupado y el índice no agrupado?

23. ¿Qué es un índice conjunto? ¿Por qué debemos prestar atención al orden en el índice conjunto?

Cinco, asuntos

1. ¿Qué es una transacción de base de datos?

2. ¿Cuáles son las cuatro características de las cosas (ACID)?

3. ¿Qué es una lectura sucia? ¿Lectura fantasma? ¿No es repetible?

4. ¿Cuál es el nivel de aislamiento de una transacción? ¿Cuál es el nivel de aislamiento predeterminado de MySQL?

Seis, bloqueo

1. ¿Entiende los bloqueos de MySQL?

Cuando la base de datos tiene transacciones concurrentes, pueden ocurrir inconsistencias de datos. En este momento, se necesita algún mecanismo para asegurar el orden de acceso, y el mecanismo de bloqueo es un mecanismo de este tipo.

Al igual que en una habitación de hotel, si todos entran y salen a voluntad, habrá varias personas robando en la misma habitación, y se instalará una cerradura en la habitación, y la persona que solicite la llave puede registrarse y cerrar la habitación. Otros solo esperan a que él la use. Se puede volver a utilizar.

2. La relación entre el nivel de aislamiento y el bloqueo

3. ¿Cuáles son los bloqueos de la base de datos según la granularidad del bloqueo? Mecanismo de bloqueo y algoritmo de bloqueo InnoDB

4. ¿Qué es un punto muerto? ¿Cómo lidiar con ello?

Deadlock se refiere al fenómeno de que dos o más transacciones se ocupan entre sí en el mismo recurso y solicitan bloquear los recursos de la otra, lo que conduce a un círculo vicioso.

Métodos comunes para resolver el interbloqueo:

1. Si diferentes programas acceden a varias tablas al mismo tiempo, intente acceder a las tablas en el mismo orden, lo que puede reducir en gran medida el punto muerto.

reunión.

2. En la misma transacción, intente bloquear todos los recursos necesarios a la vez para reducir la probabilidad de un punto muerto;

3. Para las partes comerciales que son muy propensas al interbloqueo, puede intentar actualizar la granularidad del bloqueo y reducirla mediante el bloqueo a nivel de tabla.

Menor probabilidad de estancamiento;

Si el negocio no se maneja bien, puede usar bloqueos de transacciones distribuidos o usar bloqueos optimistas

5 、…

Siete, ver

1. ¿Por qué utilizar vistas? ¿Qué es una vista?

Para mejorar la reutilización de declaraciones SQL complejas y la seguridad de las operaciones de la tabla, el sistema de administración de bases de datos MySQL proporciona vistas

característica. La llamada vista es esencialmente una tabla virtual, que no existe físicamente, su contenido es similar a la tabla real.

Contiene una serie de datos de filas y columnas con nombre. Sin embargo, la vista no existe en la base de datos como valores de datos almacenados. Fila

Y los datos de columna provienen de la tabla básica a la que hace referencia la consulta de la vista definida, y se generan dinámicamente cuando se hace referencia a la vista específicamente.

La vista permite a los desarrolladores preocuparse solo por ciertos datos específicos y tareas específicas de las que son responsables, y solo pueden ver lo que está definido en la vista

Datos, en lugar de los datos de la tabla a los que hace referencia la vista, mejorando así la seguridad de los datos en la base de datos.

2. ¿Cuáles son las características de la vista?

  • Las columnas de la vista pueden provenir de diferentes tablas, que son abstracciones de tablas y nuevas relaciones establecidas en un sentido lógico.
  • Una vista es una tabla (tabla virtual) generada a partir de una tabla básica (tabla real).
  • La creación y eliminación de vistas no afecta la tabla básica.
  • Las actualizaciones (adición, eliminación y modificación) del contenido de la vista afectan directamente a la tabla básica.
  • Cuando la vista proviene de varias tablas básicas, no se permite agregar ni eliminar datos.

Las operaciones de visualización incluyen crear vistas, visualizar vistas, eliminar vistas y modificar vistas.

3. ¿Cuáles son los escenarios de uso de la vista?

El propósito básico de la vista: simplificar la consulta SQL y mejorar la eficiencia del desarrollo. Si hay otro uso, será compatible con relojes antiguos.

estructura.

Los siguientes son escenarios de uso comunes para las vistas:

  • Reutilizar sentencias SQL;
  • Simplifique las operaciones SQL complejas. Después de escribir una consulta, puede reutilizarla fácilmente sin conocer los detalles básicos de la consulta;
  • Utilice parte de la mesa en lugar de toda la mesa;
  • Proteja los datos. A los usuarios se les puede otorgar acceso a una parte específica de la tabla en lugar de acceder a toda la tabla;
  • Cambie el formato y la presentación de los datos. La vista puede devolver datos que son diferentes de la representación y el formato de la tabla subyacente.

4 、…

Ocho, procedimientos y funciones almacenados

1. ¿Qué es un procedimiento almacenado? ¿Cuáles son las ventajas y desventajas?

Un procedimiento almacenado es una sentencia SQL precompilada, la ventaja es que permite un diseño modular, es decir, solo necesita ser creado una vez.

Se puede llamar varias veces en el programa más tarde. Si una determinada operación necesita ejecutar SQL varias veces, el uso de procedimientos almacenados es más que puro

La ejecución de la instrucción SQL debe ser rápida.

ventaja:

1) El procedimiento almacenado está precompilado y la eficiencia de ejecución es alta.

2) El código del procedimiento almacenado se almacena directamente en la base de datos y el nombre del procedimiento almacenado se llama directamente para reducir la comunicación de red.

3) Alta seguridad, los usuarios con ciertos permisos deben ejecutar procedimientos almacenados.

4) Los procedimientos almacenados se pueden reutilizar, lo que reduce la carga de trabajo de los desarrolladores de bases de datos.

Desventajas:

1) La depuración es problemática, ¡pero la depuración con PL / SQL Developer es muy conveniente! Compensa esta deficiencia.

2) El problema de la portabilidad, el código del lado de la base de datos está relacionado, por supuesto, con la base de datos. Pero si se trata de un proyecto de ingeniería, básicamente no hay

En el problema del trasplante.

3) Problema de recompilación, porque el código de back-end se compila antes de ejecutarse, si el objeto con la relación de referencia cambia,

Los paquetes y procedimientos almacenados afectados deberán volver a compilarse (pero también se puede configurar para que se compile automáticamente en tiempo de ejecución).

4) Si se utiliza una gran cantidad de procedimientos almacenados en un sistema de programa, cuando el programa se entrega para su uso, con el aumento de la demanda del usuario

La adición conducirá a cambios en la estructura de datos y luego a los problemas relacionados del sistema. Finalmente, si el usuario desea mantener el sistema, se puede decir

Es muy difícil, el precio no tiene precedentes y es más difícil de mantener.

De hecho, hay más conocimiento sobre la base de datos y las preguntas de la entrevista Por limitaciones de espacio, para no afectar la experiencia de lectura, se comparte el siguiente contenido en forma de capturas de pantalla.

Canal de inicio rápido: ( haga clic aquí ) para descargar! ¡Lleno de sinceridad! ! !

Preguntas seleccionadas para entrevistas de Java, arquitectura y portal de documentación real: https://docs.qq.com/doc/DRW1nUkdhZG5zeGVi

No es fácil de organizar, los amigos que se sientan útiles pueden ayudar, compartir y apoyar al editor ~

Su apoyo, mi motivación, ¡les deseo a todos un futuro brillante y ofertas constantes! ! !

Supongo que te gusta

Origin blog.csdn.net/weixin_45784983/article/details/108669567
Recomendado
Clasificación