¿La entrevista se quedó perpleja con MySQL de nuevo? Aquí encontrará explicaciones detalladas de 50 preguntas de entrevistas de alta frecuencia de MySQL

1. ¿Qué tipos de bloqueos hay en MySQL?

(1) Bloqueos a nivel de tabla: baja sobrecarga y bloqueo rápido; sin interbloqueos; gran granularidad de bloqueo, la mayor probabilidad de conflictos de bloqueo y la menor concurrencia.

(2) Bloqueos a nivel de fila: alta sobrecarga y bloqueo lento; se producirán interbloqueos; la granularidad del bloqueo es la más pequeña, la probabilidad de conflictos de bloqueo es la más baja y la concurrencia es la más alta.

(3) Bloqueos de página: la sobrecarga y el tiempo de bloqueo son entre bloqueos de tabla y bloqueos de fila; se producirán interbloqueos; la granularidad de bloqueo es entre bloqueos de tabla y bloqueos de fila, y la concurrencia es promedio.

 

2. ¿Cuáles son las diferentes tablas en MySQL?

Hay 5 tipos de tablas:

(1) MyISAM

(2) Montón

(3) Fusionar

(4) INNODB

(5) ISAM

 

3. Describa brevemente la diferencia entre MyISAM e InnoDB en la base de datos MySQL

MyISAM:

(1) No se admite la transacción, pero cada consulta es atómica;

(2) Soporte de bloqueo a nivel de mesa, es decir, cada operación es para bloquear toda la mesa;

(3) El número total de filas en la tabla de almacenamiento;

(4) Una tabla MYISAM tiene tres archivos: archivo de índice, archivo de estructura de tabla y archivo de datos;

(5) Se adopta el índice agrupado de Filipinas y el campo de datos del archivo de índice almacena el puntero al archivo de datos. El índice auxiliar es básicamente el mismo que el índice principal, pero no se garantiza la unicidad del índice auxiliar.

InnoDb:

(1) Soporta transacciones ACID y cuatro niveles de aislamiento de transacciones;

(2) Admite bloqueos de nivel de fila y restricciones de clave externa: puede admitir la concurrencia de escritura;

(3) No almacene el número total de filas:

(4) Un motor InnoDb se almacena en un espacio de archivos (espacio de tabla compartido, el tamaño de la tabla no está controlado por el sistema operativo, una tabla puede estar distribuida en varios archivos), o puede ser múltiple (establecido como un espacio de tabla independiente, el tamaño de la tabla está sujeto a Límite de tamaño de archivo del sistema operativo, generalmente 2G), limitado por el tamaño de archivo del sistema operativo;

(5) El índice de clave principal utiliza un índice agrupado (el campo de datos del índice almacena el archivo de datos en sí), y el campo de datos del índice secundario almacena el valor de la clave principal; por lo tanto, para encontrar datos del índice secundario, primero debe encontrar el valor de clave principal a través del índice secundario y luego acceder al índice secundario. ; Es mejor utilizar claves primarias autoincrementadas para evitar grandes ajustes en los archivos con el fin de mantener la estructura de árbol B + al insertar datos.

 

4. Los nombres de los cuatro niveles de aislamiento de transacciones admitidos por InnoDB en MySQL y las diferencias entre los niveles.

Los cuatro niveles de aislamiento definidos por el estándar SQL son:

(1) leer sin comprometer: leer datos sin confirmar

(2) lectura confirmada: lectura sucia, lectura no repetible

(3) lectura repetible: legible

(4) serializable: cosas en serie

 

5. ¿Cuál es la diferencia entre CHAR y VARCHAR?

(1) Los tipos CHAR y VARCHAR son diferentes en almacenamiento y recuperación

(2) La longitud de la columna CHAR se fija a la longitud declarada cuando se crea la tabla. El rango de valores de longitud es de 1 a 255. Cuando se almacenan los valores CHAR, se llenan con espacios a una longitud específica. Al recuperar los valores CHAR, es necesario eliminar los espacios finales.

 

6. ¿Cuál es la diferencia entre la clave principal y la clave candidata?

Cada fila de la tabla está identificada de forma única por la clave principal, y una tabla tiene solo una clave principal.

La clave principal también es una clave candidata. Por convención, las claves candidatas se pueden designar como claves primarias y se pueden utilizar para cualquier referencia de clave externa.

 

7. ¿Para qué se utiliza myisamchk?

Se utiliza para comprimir tablas MyISAM, lo que reduce el uso de disco o memoria.

¿Cuál es la diferencia entre MyISAM Static y MyISAM Dynamic?

Todos los campos de MyISAM Static tienen un ancho fijo. La tabla dinámica MyISAM tendrá campos como TEXT, BLOB, etc. para acomodar tipos de datos de diferentes longitudes.

MyISAM Static es más fácil de recuperar en caso de daño.

 

8. Si una tabla tiene una columna definida como TIMESTAMP, ¿qué pasará?

Siempre que se cambie la fila, el campo de marca de tiempo obtendrá la marca de tiempo actual.

Cuando la columna se establece en AUTO INCREMENT, ¿qué sucede si alcanza el valor máximo de la tabla?

Dejará de incrementarse y cualquier inserción adicional generará un error porque la clave ya se ha utilizado.

¿Cómo puedo saber qué incremento automático se asignó durante la última inserción?

LAST_INSERT_ID devolverá el último valor asignado por Auto_increment y no es necesario especificar el nombre de la tabla.

 

9. ¿Cómo ve todos los índices definidos para la tabla?

El índice se define para la tabla de la siguiente manera:

MOSTRAR ÍNDICE DE <nombre de la tabla>;

 

10. ¿Qué significan% y _ en la instrucción LIKE?

% Corresponde a 0 o más caracteres, y _ es solo un carácter en la instrucción LIKE.

¿Cómo convertir entre marcas de tiempo Unix y MySQL?

UNIX_TIMESTAMP es un comando para convertir de marca de tiempo de MySQL a marca de tiempo de Unix

FROM_UNIXTIME es el comando para convertir de marca de tiempo Unix a marca de tiempo MySQL

 

11. ¿Qué es el operador de comparación de columnas?

Utilice los operadores =, <>, <=, <,> =,>, <<, >>, <=>, AND, OR o LIKE en la comparación de columnas de la instrucción SELECT.

 

12. ¿Cuál es la diferencia entre BLOB y TEXT?

BLOB es un objeto binario que puede contener una cantidad variable de datos. TEXT es un BLOB que no distingue entre mayúsculas y minúsculas.

La única diferencia entre los tipos BLOB y TEXT es que los valores BLOB distinguen entre mayúsculas y minúsculas al ordenar y comparar, y los valores TEXT no distinguen entre mayúsculas y minúsculas.

 

13. ¿Cuál es la diferencia entre MySQL_fetch_array y MySQL_fetch_object?

Las siguientes son las diferencias entre MySQL_fetch_array y MySQL_fetch_object:

MySQL_fetch_array (): devuelve la fila de resultados como una matriz asociativa o una matriz regular de la base de datos.

MySQL_fetch_object: devuelve la fila de resultados de la base de datos como un objeto.

 

14. ¿Dónde se almacenarán las tablas MyISAM y también se proporcionará su formato de almacenamiento?

Cada tabla MyISAM se almacena en el disco en tres formatos:

(1) · Definición de la tabla de almacenamiento de archivos ".frm"

(2) El archivo de datos tiene la extensión ".MYD" (MYData)

(3) El archivo de índice tiene la extensión ".MYI" (MYIndex)

 

15. ¿Cómo optimiza MySQL DISTINCT?

DISTINCT se convierte a GROUP BY en todas las columnas y se usa junto con la cláusula ORDER BY.

SELECCIONE DISTINCT t1.a DE t1, t2 donde t1.a = t2.a;

 

16. ¿Cómo mostrar las primeras 50 líneas?

En MySQL, use la siguiente consulta de código para mostrar las primeras 50 filas:

SELECCIONAR DE

LÍMITE 0,50;

 

17. ¿Cuántas columnas se pueden usar para crear un índice?

Cualquier tabla estándar puede crear hasta 16 columnas de índice.

 

18. ¿Cuál es la diferencia entre NOW () y CURRENT_DATE ()?

El comando NOW () se usa para mostrar el año, mes, fecha, hora, minuto y segundo actual.

CURRENT_DATE () solo muestra el año, mes y fecha actuales.

 

19. ¿Qué es un tipo de cadena no estándar?

(1) TINYTEXT

(2) TEXTO

(3) MEDIUMTEXT

(4) LONGTEXT

 

20. ¿Qué es una función SQL general?

(1) CONCAT (A, B) -concatenar dos valores de cadena para crear una salida de cadena única. Generalmente se usa para combinar dos o más campos en un solo campo.

(2) FORMAT (X, D) - formatee los dígitos efectivos de X a D.

(3) CURRDATE (), CURRTIME (): devuelve la fecha u hora actual.

(4) AHORA (): devuelve la fecha y hora actuales como un valor.

(5) MES (), DÍA (), AÑO (), SEMANA (), DÍA DE SEMANA (): extrae los datos dados del valor de la fecha.

(6) HORA (), MINUTO (), SEGUNDO () - extrae los datos dados del valor de tiempo.

(7) DATEDIFF (A, B) -Determina la diferencia entre dos fechas, generalmente se usa para calcular la edad

(8) SUBTIMOS (A, B) -Determina la diferencia entre dos tiempos.

(9) FROMDAYS (INT) -Convertir días enteros en valores de fecha.

 

21. ¿MySQL admite transacciones?

En el modo predeterminado, MySQL está en modo de confirmación automática y todas las operaciones de actualización de la base de datos se confirmarán inmediatamente, por lo que, de forma predeterminada, MySQL no admite transacciones.

Pero si su tipo de tabla MySQL usa tablas InnoDB o tablas BDB, su MySQL puede usar el procesamiento de transacciones. Use SETAUTOCOMMIT = 0 para permitir que MySQL esté en modo no autocommit. En modo no autocommit, debe usar COMMIT Confirme sus cambios o use ROLLBACK para revertir sus cambios.

 

22. ¿Qué tipo de campo es bueno para registrar moneda en MySQL?

MySQL implementa los tipos NUMERIC y DECIMAL como el mismo tipo, lo que está permitido en el estándar SQL92. Se utilizan para almacenar valores cuya precisión es extremadamente importante, como los datos relacionados con el dinero. Cuando se declara que una clase es uno de estos tipos, la precisión y la escala se pueden especificar (y generalmente se).

P.ej:

salario DECIMAL (9,2)

En este ejemplo, 9 (precisión) representa el número total de lugares decimales que se usarán para almacenar el valor y 2 (escala) representa el número de lugares decimales que se usarán para almacenar el valor.

Por lo tanto, en este caso, el rango de valores que se pueden almacenar en la columna de salario es de -9999999,99 a 9999999,99.

 

23. ¿Qué son las tablas MySQL relacionadas con los permisos?

El servidor MySQL controla el acceso del usuario a la base de datos a través de la tabla de permisos, que se almacena en la base de datos MySQL y se inicializa mediante el script MySQL_install_db. Estas tablas de privilegios son user, db, table_priv, column_priv y host respectivamente.

 

24. ¿Cuál puede ser el tipo de cadena de la columna?

Los tipos de cadenas son:

(1) SET2

(2) BLOB

(3) ENUM

(4) CHAR

(5) TEXTO

 

25. La base de datos MySQL se utiliza para el almacenamiento del sistema de publicación, con un incremento de más de 50.000 entradas por día, se espera que funcione durante tres años ¿Cómo optimizar?

(1) Diseñe una estructura de base de datos bien diseñada, permita la redundancia parcial de datos, intente evitar consultas conjuntas y mejore la eficiencia.

(2) Seleccione el motor de almacenamiento y el tipo de datos de campo de la tabla apropiado, y agregue los índices de manera apropiada.

(3) Separación de lectura y escritura del maestro y esclavo de la biblioteca MySQL.

(4) Encuentre subtablas regulares, reduzca la cantidad de datos en una sola tabla y mejore la velocidad de consulta.

(5) Agregue mecanismos de almacenamiento en caché, como memcached, apc, etc.

(6) Genere páginas estáticas para páginas que no se cambian con frecuencia.

(7) Escritura de SQL eficiente. Por ejemplo, SELECT * FROM TABEL se cambia a SELECT field_1, field_2, field_3 FROM TABEL.

 

26, estrategia de optimización de bloqueo

(1) Separación de lectura y escritura

(2) Bloqueo segmentado

(3) Reducir el tiempo de retención de la cerradura

(4) Varios subprocesos intentan obtener recursos en el mismo orden

La granularidad del candado no puede ser demasiado fina; de lo contrario, puede haber demasiados hilos para bloquear y soltar, pero la eficiencia no es tan buena como agregar un candado grande a la vez.

 

27. El principio de aplicación subyacente y la optimización del índice

Árbol B +, árbol B + optimizado

La razón principal es que se agrega un puntero al siguiente nodo hoja a todos los nodos hoja, por lo que InnoDB recomienda usar la clave primaria autoincrementada predeterminada como índice primario para la mayoría de las tablas.

 

28. En qué circunstancias se establece el índice pero no se puede utilizar

(1) Oraciones LIKE que comienzan con "%", coincidencia aproximada

(2) Los índices no se utilizan antes y después de la declaración OR

(3) Conversión implícita de tipo de datos (como varchar sin comillas simples, se puede convertir automáticamente a tipo int)

 

29. Cómo optimizar MySQL en la práctica

Es mejor optimizar en el siguiente orden:

(1) Optimización de sentencias e índices SQL

(2) Optimización de la estructura de la tabla de la base de datos

(3) Optimización de la configuración del sistema

(4) Optimización de hardware

 

30, el método de optimización de la base de datos

(1) Seleccione el atributo de campo más aplicable, reduzca el ancho del campo definido tanto como sea posible e intente establecer el campo como NOTNULL, como 'provincia' y 'género', es mejor aplicar ENUM

(2) Use join (JOIN) en lugar de subconsulta

(3) Aplicar unión (UNION) en lugar de una tabla temporal creada manualmente

(4) Procesamiento de transacciones

(5) Bloquear tablas y optimizar el procesamiento de transacciones

(6) Aplicar claves externas para optimizar las tablas de bloqueo

(7) Cree un índice

(8) Optimice las declaraciones de consulta

 

31. Describa brevemente la diferencia entre índice, clave principal, índice único e índice conjunto en MySQL, y qué impacto tiene en el rendimiento de la base de datos (tanto de lectura como de escritura).

Los índices son un tipo especial de archivos (los índices de las tablas de datos InnoDB son parte del espacio de la tabla), contienen punteros de referencia a todos los registros de la tabla de datos.

La única tarea de un índice ordinario (un índice definido por la palabra clave KEY o INDEX) es acelerar el acceso a los datos.

Los índices ordinarios permiten que la columna de datos indexados contenga valores duplicados. Si puede determinar que una columna de datos solo contendrá valores que son diferentes entre sí, debe usar la palabra clave UNIQUE para definirla como un índice único al crear un índice para esta columna de datos. En otras palabras, el índice único puede garantizar la unicidad de los registros de datos.

La clave principal es un índice único especial. Sólo se puede definir un índice de clave principal en una tabla. La clave principal se utiliza para identificar un registro de forma única y se crea utilizando la palabra clave PRIMARY KEY.

Los índices pueden cubrir varias columnas de datos, como índices como INDEX (columnA, columnB), que es un índice conjunto.

Los índices pueden aumentar en gran medida la velocidad de la consulta de datos, pero reducirán la velocidad de inserción, eliminación y actualización de tablas, porque al realizar estas operaciones de escritura, el archivo de índice debe manipularse.

 

32. ¿Qué es la transacción en la base de datos?

Una transacción es un conjunto ordenado de operaciones de base de datos como una unidad. Si todas las operaciones del grupo tienen éxito, la transacción se considera exitosa, incluso si solo falla una operación, la transacción no es exitosa. Si se completan todas las operaciones, la transacción se confirma y sus modificaciones se aplicarán a todos los demás procesos de la base de datos. Si una operación falla, la transacción se revertirá y se cancelará el impacto de todas las operaciones de la transacción.

Características de la transacción:

(1) Atomicidad: es decir, indivisibilidad, las transacciones se ejecutan todas o no se ejecutan todas.

(2) Coherencia o rigor. La ejecución de la transacción hace que la base de datos pase de un estado correcto a otro.

(3) Aislamiento. Antes de que la transacción se confirme correctamente, no se permite proporcionar ningún cambio de datos realizado por la transacción a ninguna otra transacción.

(4) Persistencia. Una vez que la transacción se envía correctamente, el resultado se guardará permanentemente en la base de datos. Incluso si hay otras fallas después de enviar la transacción, el resultado del procesamiento de la transacción se guardará.

O entiéndalo así:

Una transacción es una agrupación de sentencias SQL que se unen como una unidad lógica de trabajo. Si falla alguna operación de sentencia, toda la operación fallará y la operación se revertirá al estado anterior a la operación o si hay un nodo en ella. Para asegurarse de que se ejecute o no, se pueden utilizar transacciones. Para considerar una declaración de grupo como una transacción, es necesario pasar la prueba ACID, es decir, atomicidad, consistencia, aislamiento y durabilidad.

 

33. ¿Qué causa las vulnerabilidades de inyección de SQL? ¿Cómo prevenirlo?

Razones para la inyección SQL: En el proceso de desarrollo del programa, no se tiene cuidado de escribir sentencias sql y filtrar caracteres especiales, como resultado, el cliente puede enviar algunas sentencias sql a través de variables globales POST y GET para su ejecución normal.

Formas de prevenir la inyección de SQL:

Habilite las configuraciones magic_quotes_gpc y magic_quotes_runtime en el archivo de configuración

Use addlashes para la conversión de instrucciones SQL al ejecutar una instrucción SQL

Intente no omitir comillas dobles y comillas simples al escribir declaraciones SQL.

Filtre algunas palabras clave en la declaración SQL: actualizar, insertar, eliminar, seleccionar, *.

Mejorar las habilidades para nombrar tablas y campos de bases de datos Nombra algunos campos importantes de acuerdo con las características del programa y elige aquellos que no sean fáciles de adivinar.

 

34. Seleccione el tipo de datos apropiado para los campos de la tabla.

Prioridad del tipo de campo: plástico> fecha, hora> enum, char> varchar> blob, text

Se da prioridad a los tipos numéricos, seguidos de los tipos de fecha o binarios, y finalmente los tipos de cadena. Para tipos de datos del mismo nivel, se deben preferir los tipos de datos que ocupan menos espacio

 

35. Período de almacenamiento

Datatime: tiempo del período de almacenamiento en YYYY-MM-DD HH: MM: formato SS, exacto al segundo, ocupa 8 bytes de espacio de almacenamiento, el tipo de tiempo de datos no tiene nada que ver con la zona horaria Marca de tiempo: almacena en formato de marca de tiempo, ocupa 4 bytes, El rango es pequeño de 1970-1-1 a 2038-1-19. La visualización depende de la zona horaria especificada. De forma predeterminada, el valor de la columna de marca de tiempo se puede modificar automáticamente cuando se modifican los datos de la primera fila de la columna.

Fecha: (cumpleaños) ocupa menos bytes que usar la cadena .datatime.int para almacenarlo. Usar la fecha solo requiere 3 bytes para almacenar la fecha y el mes. También puede usar la función de fecha y hora para calcular el período del día

Hora: almacena la parte de la hora de los datos

Nota: No use el tipo de cadena para almacenar datos de fecha y hora (por lo general, ocupa menos espacio de almacenamiento que la cadena, puede usar la función de fecha al buscar y filtrar)

Usar int para almacenar la fecha y la hora no es tan bueno como usar el tipo de marca de tiempo

 

36. Los índices son un concepto muy importante para las bases de datos relacionales. Responda algunas preguntas sobre índices:

(1) ¿Cuál es el propósito del índice?

Acceda rápidamente a información específica en la tabla de datos para mejorar la velocidad de recuperación

Cree un índice único para garantizar la singularidad de cada fila de datos en la tabla de la base de datos.

Conexión entre acelerómetro y mesa

Al utilizar cláusulas de agrupación y ordenación para la recuperación de datos, puede reducir significativamente el tiempo de agrupación y ordenación en la consulta.

(2) ¿Cuál es el impacto negativo de los índices en el sistema de base de datos?

Impacto negativo:

Se necesita tiempo para crear y mantener índices, y este tiempo aumenta con el aumento en el volumen de datos; los índices deben ocupar espacio físico, no solo las tablas deben ocupar espacio de datos, cada índice también debe ocupar espacio físico; al agregar o eliminar tablas Los índices también deben mantenerse dinámicamente al cambiar, lo que reduce la velocidad del mantenimiento de datos.

(3) ¿Cuáles son los principios para indexar tablas de datos?

Cree índices en los campos utilizados con más frecuencia para limitar el alcance de la consulta.

Cree índices en campos de uso frecuente que deben ordenarse

(4) ¿En qué circunstancias es inapropiado crear un índice?

Para columnas que rara vez están involucradas en la consulta o columnas con muchos valores duplicados, no es apropiado crear un índice.

Para algunos tipos de datos especiales, no es apropiado crear índices, como campos de texto (texto), etc.

 

37. Explique la diferencia entre la conexión externa de MySQL, la conexión interna y la conexión propia.

Permítanme hablar primero sobre la combinación cruzada: la combinación cruzada también se denomina producto cartesiano y se refiere a hacer coincidir directamente todos los registros de una tabla con todos los registros de otra tabla sin utilizar ninguna condición.

Las combinaciones internas son solo combinaciones cruzadas condicionales. Según una determinada condición, los registros que cumplen las condiciones se filtran. Los registros que no cumplen las condiciones no aparecerán en el conjunto de resultados, es decir, las combinaciones internas solo conectan filas coincidentes.

El conjunto de resultados de combinaciones externas no solo contiene filas que cumplen las condiciones de combinación, sino que también incluye todas las filas de datos de la tabla izquierda, la tabla derecha o dos tablas. Estos tres casos se denominan combinación externa izquierda, combinación externa derecha y combinación completa Conexión externa.

Unión externa izquierda, también conocida como combinación izquierda, la tabla de la izquierda es la tabla principal, todos los registros de la tabla de la izquierda aparecerán en el conjunto de resultados, para aquellos registros que no coincidan en la tabla de la derecha, aún deben mostrarse, y los valores de campo correspondientes a la derecha son NULL para llenar. Unión externa derecha, también llamada unión derecha, la tabla derecha es la tabla principal y todos los registros de la tabla derecha aparecerán en el conjunto de resultados. La conexión izquierda y la conexión derecha se pueden intercambiar, MySQL actualmente no admite conexiones externas completas.

 

38. Descripción general del mecanismo de reversión de transacciones en Myql

Una transacción es una secuencia de operaciones de base de datos definida por el usuario. Estas operaciones se realizan o no se realizan. Es una unidad de trabajo indivisible. La reversión de transacciones se refiere a deshacer las operaciones de actualización de la base de datos que la transacción ha completado.

Cuando se quiere modificar dos tablas diferentes en la base de datos al mismo tiempo, si no son una transacción, cuando se modifica la primera tabla, puede haber una excepción durante la modificación de la segunda tabla y no se puede modificar. En este momento, solo existe la segunda tabla Sigue siendo el estado anterior a la modificación y la primera tabla se ha modificado. Y cuando los configura como una transacción, cuando se modifica la primera tabla, la segunda tabla se modifica de forma anormal y no se puede modificar, la primera tabla y la segunda tabla deben volver al estado sin modificar. Este es el llamado rollback de transacciones

 

39. ¿Qué partes incluye el lenguaje SQL? ¿Cuáles son las palabras clave operativas en cada parte?

El lenguaje SQL incluye cuatro partes: definición de datos (DDL), manipulación de datos (DML), control de datos (DCL) y consulta de datos (DQL).

Definición de datos: Crear tabla, Alterar tabla, Drop Table, Craete / Drop Index, etc.

Manipulación de datos: seleccionar, insertar, actualizar, eliminar,

Control de datos: concesión, revocación

Consulta de datos: seleccionar

 

40. ¿Cuáles son las limitaciones de integridad?

La integridad de los datos (integridad de los datos) se refiere a la precisión (precisión) y confiabilidad (confiabilidad) de los datos.

Dividido en las siguientes cuatro categorías:

(1) Integridad de la entidad: estipule que cada fila de la tabla es la única entidad en la tabla.

(2) Integridad de dominio: significa que las columnas de la tabla deben cumplir con una cierta restricción de tipo de datos específica, que también incluye el rango de valores, la precisión y otras disposiciones.

(3) Integridad referencial: Significa que los datos de la clave principal y la clave externa de las dos tablas deben ser consistentes, asegurando la consistencia de los datos entre las tablas y evitando la pérdida de datos o la propagación de datos sin sentido en la base de datos.

(4) Integridad definida por el usuario: diferentes sistemas de bases de datos relacionales a menudo requieren algunas restricciones especiales de acuerdo con sus diferentes entornos de aplicación. La integridad definida por el usuario se refiere a las condiciones de restricción para una base de datos relacional específica y refleja los requisitos semánticos que debe cumplir una aplicación específica.

Restricciones relacionadas con la tabla: incluidas las restricciones de la columna (NOT NULL (restricciones no nulas)) y las restricciones de la tabla (PRIMARY KEY, clave externa, verificación, UNIQUE).

 

41. ¿Qué es un candado?

La base de datos es un recurso compartido utilizado por varios usuarios. Cuando varios usuarios acceden a los datos al mismo tiempo, varias transacciones accederán simultáneamente a los mismos datos en la base de datos. Si no controla las operaciones simultáneas, es posible que se lean y almacenen datos incorrectos y que se destruya la coherencia de la base de datos.

El bloqueo es una tecnología muy importante para lograr el control de concurrencia de la base de datos. Antes de que la transacción opere en un determinado objeto de datos, envía una solicitud al sistema y lo bloquea. Una vez que el bloqueo está bloqueado, la transacción tiene cierto control sobre el objeto de datos. Antes de que la transacción libere el bloqueo, otras transacciones no pueden actualizar el objeto de datos.

Tipos de bloqueo básicos: los bloqueos incluyen bloqueos a nivel de fila y bloqueos a nivel de mesa

 

42. ¿Qué es una vista? ¿Qué es un cursor?

Una vista es una mesa virtual que tiene las mismas funciones que una mesa física. Puede agregar, modificar, verificar y manipular la vista. Una vista suele ser un subconjunto de filas o columnas de una o varias tablas. Las modificaciones a la vista no afectan la tabla básica. Nos facilita la obtención de datos, en comparación con la consulta de varias tablas.

Cursor: procesa eficazmente el conjunto de resultados de la consulta como una unidad. El cursor se puede colocar en una fila específica de la unidad y recuperar una o más filas de la fila actual en el conjunto de resultados. Puede modificar la fila actual del conjunto de resultados. Los cursores generalmente no se utilizan, pero son muy importantes cuando se procesan datos uno por uno.

 

43. ¿Qué es un procedimiento almacenado? Que llamar

Un procedimiento almacenado es una declaración SQL precompilada, la ventaja es que permite un diseño modular, es decir, solo necesita ser creado una vez y puede ser llamado varias veces en el programa posteriormente. Si una operación necesita ejecutar SQL varias veces, el uso de procedimientos almacenados es más rápido que la ejecución pura de instrucciones SQL. Puede utilizar un objeto de comando para llamar a un procedimiento almacenado.

 

44. ¿Cómo entender los tres paradigmas de manera popular?

La primera forma normal: 1NF es la restricción de atomicidad en el atributo, que requiere que el atributo sea atómico y no se puede descomponer;

El segundo paradigma: 2NF es una restricción única sobre los registros, que requiere que los registros se identifiquen de forma única, es decir, la unicidad de las entidades;

La tercera forma normal: 3NF es una restricción sobre la redundancia de campos, es decir, ningún campo no puede derivarse de otros campos y no requiere redundancia en el campo. .

Ventajas y desventajas del diseño de paradigmas:

Ventajas: la redundancia de datos se puede reducir tanto como sea posible, lo que hace que las actualizaciones sean rápidas y de tamaño pequeño

Desventajas: para las consultas, se requieren varias tablas para asociar, lo que reduce la eficiencia de escritura y aumenta la eficiencia de lectura, y es más difícil optimizar el índice

Desnormalización:

Ventajas: puede reducir las asociaciones de tablas, puede optimizar la optimización de índices

Desventajas: redundancia de datos y anomalías en los datos, la modificación de datos requiere más costos

 

45. ¿Qué es una tabla básica? ¿Qué es una vista?

La tabla básica es una tabla independiente en sí misma, y ​​una relación corresponde a una tabla en SQL. Una vista es una tabla derivada de una o varias tablas básicas. La vista en sí no se almacena de forma independiente en la base de datos, es una tabla virtual

 

46. ​​¿Cuáles son las ventajas de las vistas?

(1) Las vistas pueden simplificar las operaciones del usuario

(2) Ver permite a los usuarios ver los mismos datos desde múltiples ángulos;

(3) La vista proporciona un cierto grado de independencia lógica para la base de datos;

(4) View puede proporcionar protección de seguridad para datos confidenciales.

 

47. ¿Qué significa NULL?

NULL significa DESCONOCIDO (desconocido): no significa "" (cadena vacía). Cualquier comparación con el valor NULL producirá un valor NULL. No puede comparar ningún valor con un valor NULO y lógicamente esperar obtener una respuesta.

Utilice IS NULL para juzgar NULL

 

48. ¿La diferencia entre clave primaria, clave externa e índice?

La diferencia entre clave primaria, clave externa e índice

definición:

Clave principal: identifica un registro de forma exclusiva, no se puede duplicar y no puede estar vacía

Clave externa: la clave externa de una tabla es la clave principal de otra tabla, la clave externa se puede repetir y puede ser nula

Índice: el campo no tiene valores duplicados, pero puede tener un valor nulo

efecto:

Clave principal utilizada para garantizar la integridad de los datos

Clave externa utilizada para establecer contacto con otras tablas

Index-es para mejorar la velocidad de clasificación de consultas

Número:

Clave principal: solo puede haber una clave principal

Claves externas: una tabla puede tener varias claves externas

Índice: una tabla puede tener varios índices únicos

 

49. ¿Qué puede usar para asegurarse de que los campos de la tabla solo acepten valores en un rango específico?

El límite de verificación, que se define en la tabla de la base de datos, se usa para limitar el valor ingresado en la columna.

Los desencadenadores también se pueden usar para limitar los valores aceptables de los campos en una tabla de base de datos, pero este enfoque requiere que se definan desencadenadores en la tabla, lo que puede afectar el rendimiento en algunos casos.

 

50. ¿Cuáles son los métodos para optimizar declaraciones SQL? (Elija algunos)

(1) Cláusula Where: La conexión entre las tablas where debe escribirse antes que otras condiciones Where, y aquellas condiciones que pueden filtrar el número máximo de registros deben escribirse al final de la cláusula Where. HAVING al final.

(2) Utilice EXISTS en lugar de IN y NOT EXISTS en lugar de NOT IN.

(3) Evite el uso de cálculos en columnas de índice

(4) Evite usar IS NULL y IS NOT NULL en la columna de índice

(5) Para optimizar la consulta, intente evitar escaneos completos de la tabla. Primero, considere la posibilidad de construir índices en las columnas involucradas en dónde y ordenar por.

(6) Intente evitar el juicio de valor nulo del campo en la cláusula where, de lo contrario, hará que el motor deje de usar el índice y realice un escaneo completo de la tabla.

(7) Intente evitar realizar operaciones de expresión en campos en la cláusula where, lo que hará que el motor abandone el uso de índices y realice escaneos completos de tablas.


 

Supongo que te gusta

Origin blog.csdn.net/bjmsb/article/details/108717886
Recomendado
Clasificación