[MySQL] 37 sugerencias sobre bases de datos MySQL

Inserte la descripción de la imagen aquí

1. Información general

Reimpreso: 37 consejos sobre bases de datos MySQL, ¡no te arrepientas!

Ya sea que se trate de operación y mantenimiento, desarrollo, pruebas o arquitectura, la tecnología de bases de datos es un artefacto imprescindible. Entonces, ¿qué desea aprender sobre bases de datos y MySQL?

1. ¿Cómo dominar rápidamente MySQL?
Cultivar interés

El interés es el mejor maestro No importa qué conocimiento se aprenda, el interés puede mejorar enormemente la eficiencia del aprendizaje. Por supuesto, aprender MySQL 5.6 no es una excepción.

Establecer una base sólida

La tecnología en el campo de la informática pone gran énfasis en lo básico, y es posible que no se dé cuenta de esto al principio. Con la profundización de las aplicaciones de la tecnología, solo con una base sólida se puede avanzar más rápido y más en el camino de la tecnología. Para el aprendizaje de MySQL, las declaraciones SQL son la parte más básica y muchas operaciones se implementan mediante declaraciones SQL. Por lo tanto, en el proceso de aprendizaje, los lectores deben escribir más declaraciones SQL y usar diferentes declaraciones de implementación para completar la misma función, a fin de comprender profundamente las diferencias.

Aprenda nuevos conocimientos a tiempo

Usando el motor de búsqueda de manera correcta y efectiva, puede buscar muchos conocimientos relevantes sobre MySQL 5.6. Al mismo tiempo, consulte las ideas de otros para resolver el problema, también puede aprender de la experiencia de otros y obtener la información técnica más reciente a tiempo.

Práctica múltiple

El sistema de base de datos tiene una gran operatividad y requiere más operaciones prácticas. En el proceso de operación real, se pueden descubrir problemas y se pueden considerar los métodos e ideas para resolverlos. Sólo de esta manera se puede mejorar la capacidad operativa en el combate real.

2. ¿Cómo elegir el tipo de servidor?
El significado de cada parámetro en la ventana de configuración del servidor MySQL es el siguiente.
[Tipo de configuración del servidor] Esta opción se utiliza para establecer el tipo de servidor. Haga clic en el botón hacia abajo en el lado derecho de la opción, puede ver 3 opciones.

Los significados específicos de las tres opciones son los siguientes:
Máquina de desarrollo: esta opción representa una estación de trabajo de escritorio personal típica. Suponga que hay varias aplicaciones de escritorio ejecutándose en la máquina. Configure el servidor MySQL para utilizar la menor cantidad de recursos del sistema.

Máquina servidor (servidor): esta opción representa el servidor, el servidor MySQL puede ejecutarse con otras aplicaciones, como FTP, correo electrónico y servidor web. El servidor MySQL está configurado para utilizar una proporción adecuada de recursos del sistema.

Máquina de servidor MySQL dedicada (servidor MySQL dedicado): esta opción representa un servidor que solo ejecuta el servicio MySQL. Se supone que no se están ejecutando otras aplicaciones. El servidor MySQL está configurado para utilizar todos los recursos del sistema disponibles. Como principiante, se recomienda elegir la opción [DevelopmentMachine], que ocupará menos recursos del sistema.

3. Cómo elegir un motor de almacenamiento Los
diferentes motores de almacenamiento tienen sus propias características para satisfacer diferentes necesidades, como se muestra en la siguiente tabla. Tomar una decisión:

Primero, debe considerar qué funciones diferentes proporciona cada motor de almacenamiento. Si desea proporcionar capacidades de seguridad de transacciones (compatible con ACID) para las capacidades de confirmación, reversión y recuperación de fallas, y requiere control de concurrencia, InnoDB es una buena opción. Si la tabla de datos se utiliza principalmente para insertar y consultar registros, el motor MyISAM puede proporcionar una mayor eficiencia de procesamiento; si los datos solo se almacenan temporalmente, la cantidad de datos no es grande y no se requiere una alta seguridad de los datos, puede optar por guardar los datos en la memoria El motor de memoria en MySQL usa este motor como una tabla temporal para almacenar resultados intermedios de consultas. Si solo hay operaciones INSERT y SELECT, puede elegir el motor de archivo. El motor de almacenamiento de archivo admite operaciones de inserción muy concurrentes, pero no es seguro para las transacciones. El motor de almacenamiento de archivos es muy adecuado para almacenar datos archivados. Por ejemplo, puede utilizar el motor de archivos para registrar información de registro.

El motor que se utilizará debe seleccionarse de forma flexible según las necesidades. Varias tablas de una base de datos pueden utilizar distintos motores para satisfacer diversas necesidades reales y de rendimiento.

El uso de un motor de almacenamiento adecuado mejorará el rendimiento de toda la base de datos.

4. ¿Cómo comprobar el motor de almacenamiento predeterminado?
Utilice la instrucción SHOW ENGINES para ver todos los motores de almacenamiento del sistema, incluido el motor de almacenamiento predeterminado. Se puede ver que hay cinco motores de almacenamiento en el sistema de base de datos actual, y el predeterminado es MyISAM. También puede utilizar un método directo para ver el motor de almacenamiento predeterminado. El resultado de la ejecución muestra directamente que el motor de almacenamiento predeterminado actual es MyISAM.

5. Tenga cuidado al
eliminar tablas. Las operaciones de eliminación de tablas eliminarán la definición de la tabla y los datos en la tabla juntos, y MySQL no solicitará ninguna confirmación al ejecutar la operación de eliminación. Por lo tanto, debe tener cuidado al realizar la operación de eliminación. Antes de eliminar la tabla, es mejor hacer una copia de seguridad de los datos en la tabla para que cuando ocurra un error de operación, los datos se puedan restaurar para evitar consecuencias irreversibles.

De manera similar, cuando utilice ALTER TABLE para realizar operaciones básicas de modificación de la tabla, debe asegurarse de tener una copia de seguridad completa de los datos antes de realizar el proceso de operación, ya que los cambios en la base de datos no se pueden deshacer. Si agrega un campo innecesario, puede Bórrelo; de la misma manera, si elimina una columna requerida, todos los datos debajo de esa columna se perderán.

6. ¿Hay una clave principal en cada tabla?
No todas las tablas necesitan una clave principal. Generalmente, si conecta varias tablas, debe usar la clave principal. Por tanto, no es necesario establecer una clave principal para cada tabla y, en algunos casos, es mejor no utilizar la clave principal.

7. ¿Se puede seleccionar arbitrariamente el motor de almacenamiento para cada tabla?
Las restricciones de clave externa (CLAVE EXTERNA) no se pueden utilizar en varios motores. MySQL admite varios motores de almacenamiento, cada tabla puede especificar un motor de almacenamiento diferente, pero debe tenerse en cuenta: las restricciones de clave externa se utilizan para garantizar la integridad referencial de los datos, si la tabla debe asociarse con claves externas, pero especifique una diferente Para los motores de almacenamiento, no se pueden crear restricciones de clave externa entre estas tablas. Por tanto, la elección del motor de almacenamiento no es del todo arbitraria.

8. ¿El valor del campo con la restricción AUTO_INCREMENT comienza desde 1?
Por defecto, en MySQL, el valor inicial de AUTO_INCREMENT es 1. Cada vez que se agrega un nuevo registro, el valor del campo se incrementa automáticamente en 1. Al configurar el atributo de incremento automático (AUTO_INCREMENT), también puede especificar el valor del campo de incremento automático del primer registro insertado, de modo que el valor del campo de incremento automático del registro recién insertado aumente desde el valor inicial, como insertar el primer registro en tb_emp8 , Y especifique el valor de identificación de 5 al mismo tiempo, luego el valor de identificación del registro insertado aumentará de 6 en adelante. Al agregar restricciones de clave primaria únicas, a menudo es necesario establecer campos para agregar atributos automáticamente.

9. La diferencia entre TIMESTAMP y DATATIME
TIMESTAMP y DATETIME aparte de los bytes de almacenamiento y el rango de soporte, hay una gran diferencia: DATETIME almacena los datos de fecha en el formato realmente ingresado, es decir, lo que ingresa se almacena Qué, no tiene nada que ver con la zona horaria; y el valor TIMESTAMP se almacena en formato UTC (Hora estándar universal), la zona horaria actual se convierte durante el almacenamiento y luego se vuelve a convertir a la zona horaria actual durante la recuperación. Es decir, al realizar una consulta, el valor de tiempo que se muestra es diferente según la zona horaria actual.

10. ¿Cuáles son los métodos y técnicas para seleccionar tipos de datos?
MySQL proporciona una gran cantidad de tipos de datos. Para optimizar el almacenamiento y mejorar el rendimiento de la base de datos, se debe utilizar el tipo más preciso en cualquier caso. Es decir, de todos los tipos que pueden representar el valor de la columna, este tipo utiliza el menor almacenamiento.

Entero y punto flotante

Si no necesita una parte fraccionaria, use un número entero para guardar los datos; si necesita representar una parte fraccionaria, use un tipo de número de punto flotante. Para columnas de datos de punto flotante, el valor almacenado se redondeará al lugar decimal definido por la columna. Por ejemplo, si el valor de la columna varía de 1 a 99999, si usa un número entero, MEDIUMINT UNSIGNED es el mejor tipo; si necesita almacenar decimales, use el tipo FLOAT. Los tipos de punto flotante incluyen los tipos FLOAT y DOUBLE. El tipo DOBLE tiene mayor precisión que el tipo FLOAT, por lo tanto, si se requiere una mayor precisión de almacenamiento, se debe seleccionar el tipo DOBLE.

Punto flotante y punto fijo

La ventaja de los números de coma flotante FLOAT y DOUBLE sobre DECIMAL de coma fija es que, con una cierta longitud, los números de coma flotante pueden representar un rango de datos más grande. Sin embargo, debido a que los números de punto flotante son propensos a errores, se recomienda utilizar DECIMAL para el almacenamiento cuando los requisitos de precisión son relativamente altos. DECIMAL se almacena como una cadena en MySQL y se usa para definir datos que requieren alta precisión, como moneda. En la migración de datos, float (M, D) es una definición de SQL no estándar y la migración de la base de datos puede causar problemas, por lo que es mejor no usarla así. Los otros dos números de punto flotante también son propensos a tener problemas al realizar operaciones de resta y comparación, por lo que debe tener cuidado al realizar cálculos. Si está realizando comparaciones numéricas, es mejor utilizar el tipo DECIMAL.

Tipo de fecha y hora

MySQL tiene muchos tipos de datos para diferentes tipos de fechas y horas, como AÑO y HORA. Si solo necesita registrar el año, puede usar el tipo AÑO; si solo registra la hora, solo necesita usar el tipo HORA. Si necesita registrar la fecha y la hora al mismo tiempo, puede usar el tipo TIMESTAMP o DATETIME. Dado que el rango de valores de la columna TIMESTAMP es menor que el rango de valores de DATETIME, es mejor usar DATETIME para fechas con un rango de almacenamiento más grande. TIMESTAMP también tiene un atributo que DATETIME no tiene. De forma predeterminada, cuando se inserta un registro pero no se especifica el valor de la columna TIMESTAMP, MySQL establecerá la columna TIMESTAMP a la hora actual. Por lo tanto, cuando necesita insertar un registro e insertar la hora actual, es conveniente usar TIMESTAMP, y TIMESTAMP es más eficiente que DATETIME en el espacio.

Características y opciones entre CHAR y VARCHAR

La diferencia entre CHAR y VARCHAR:
CHAR es un carácter de longitud fija, VARCHAR es un carácter de longitud variable; CHAR eliminará automáticamente los espacios finales de los datos insertados y VARCHAR no eliminará los espacios finales.

CHAR es una longitud fija, por lo que su velocidad de procesamiento es más rápida que la de VARCHAR, pero su desventaja es que desperdicia espacio de almacenamiento. Por lo tanto, no hay mucho almacenamiento, pero el tipo CHAR se puede usar si se requiere la velocidad, y se puede usar el tipo VARCHAR en su lugar.

El impacto del motor de almacenamiento en la elección de CHAR y VARCHAR:
Para el motor de almacenamiento MyISAM: es mejor utilizar columnas de datos de longitud fija en lugar de columnas de datos de longitud variable. Esto puede hacer que toda la tabla sea estática, de modo que la recuperación de datos sea más rápida y el espacio se intercambie por tiempo.

Para el motor de almacenamiento InnoDB: use columnas de datos de longitud variable, porque el formato de almacenamiento de la tabla de datos InnoDB no distingue entre longitud fija y longitud variable, por lo que usar CHAR no es necesariamente mejor que usar VARCHAR, pero debido a que VARCHAR se almacena de acuerdo con la longitud real, Ahorra espacio, por lo que es mejor para la E / S de disco y el almacenamiento total de datos.

ENUM y SET

ENUM solo puede tomar un valor único y su lista de datos es una colección enumerada. Su lista de valor legal permite hasta 65,535 miembros. Por lo tanto, cuando necesite seleccionar uno de varios valores, puede usar ENUM. Por ejemplo: el campo de género es adecuado para ser definido como tipo ENUM, y solo se puede tomar un valor de 'masculino' o 'femenino' a la vez. SET puede tomar varios valores. Su lista de valores legales permite hasta 64 miembros.

Una cadena vacía también es un valor SET legal. Cuando necesite tomar varios valores, es apropiado usar el tipo SET. Por ejemplo, para almacenar los pasatiempos de una persona, es mejor usar el tipo SET. Los valores de ENUM y SET aparecen en forma de cadenas, pero internamente, MySQL los almacena en forma de números.

BLOB y TEXTO

BLOB es una cadena binaria, TEXT es una cadena no binaria, las cuales pueden almacenar información de gran capacidad. BLOB almacena principalmente imágenes, información de audio, etc., mientras que TEXT solo puede almacenar archivos de texto sin formato. Debe distinguirse el propósito de los dos. Haga clic aquí para resumir las 55 preguntas de la entrevista MYSQL para la entrevista BAT.

11. ¿Cómo usar caracteres especiales en MySQL?
Símbolos como comillas simples ('), comillas dobles ("), barra invertida (), etc., estos símbolos no se pueden ingresar ni usar directamente en MySQL, de lo contrario se producirán resultados inesperados. En MySQL, estos caracteres especiales se denominan conversión Al ingresar, debe comenzar con una barra invertida ('\'), por lo que debe ingresar (\ ') o (") cuando usa comillas simples y dobles, y debe ingresar () cuando ingresa una barra invertida, Otros caracteres especiales incluyen retorno de carro (\ r), salto de línea (\ n), tabulador (\ tab), retroceso (\ b), etc. Al insertar estos caracteres especiales en la base de datos, deben escaparse.

12. ¿Se pueden almacenar archivos en MySQL?
Los tipos de campo BLOB y TEXT en MySQL pueden almacenar archivos con una gran cantidad de datos. Puede usar estos tipos de datos para almacenar imágenes, sonidos o contenido de texto de gran capacidad, como páginas web o documentos. Aunque el uso de BLOB o TEXT puede almacenar grandes cantidades de datos, el procesamiento de estos campos reducirá el rendimiento de la base de datos. Si no es necesario, puede elegir una ruta donde solo se almacenan los archivos.

13. ¿Cómo realizar una comparación de cadenas que distinga entre mayúsculas y minúsculas en MySQL?
En la plataforma Windows, MySQL no distingue entre mayúsculas y minúsculas, por lo que la función de comparación de cadenas no distingue entre mayúsculas y minúsculas. Si desea realizar una comparación que distinga entre mayúsculas y minúsculas, puede agregar la palabra clave BINARY delante de la cadena. Por ejemplo, de forma predeterminada, el resultado devuelto de'a '=' A 'es 1. Si se utiliza la palabra clave BINARY, el resultado de BINARY'a' = 'A' es 0. En caso de distinción entre mayúsculas y minúsculas, 'a' y'A ' No es el mísmo.

14. ¿Cómo obtener algunos valores de fecha u hora como año, mes, día, etc. a partir del valor de fecha y hora?
En MySQL, los valores de fecha y hora se almacenan en la tabla de datos como cadenas, por lo que puede usar funciones de cadena para interceptar diferentes partes de los valores de fecha y hora. Por ejemplo, un campo llamado dt tiene el valor "2010-10-01 12:00" : 30 ", si solo necesita obtener el valor del año, puede ingresar LEFT (dt, 4), por lo que obtiene una subcadena con una longitud de 4 desde la izquierda de la cadena, es decir, el valor de la parte AÑO; si desea obtener el valor del mes, puede ingresar MID (dt, 6,2), a partir del sexto carácter de la cadena, la subcadena de longitud 2 es exactamente el valor del mes en dt. De la misma manera, los lectores pueden calcular y obtener los valores correspondientes basándose en otras posiciones de fecha y hora.

15. ¿Cómo cambiar el juego de caracteres predeterminado?
La función CONVERT () cambia el juego de caracteres predeterminado de la cadena especificada. En el capítulo inicial, el lector es introducido a la instalación y configuración de MySQL usando la herramienta gráfica de instalación y configuración GUI. Uno de los pasos es seleccionar el juego de caracteres predeterminado de MySQL. Sin embargo, si solo cambia el juego de caracteres, no es necesario volver a realizar el proceso de configuración, aquí una forma sencilla es modificar el archivo de configuración. En Windows, el nombre del archivo de configuración de MySQL es my.ini, que se encuentra en el directorio de instalación de MySQL. Modifique los valores de los parámetros default-character-set y character-set-server en el archivo de configuración y cámbielos al nombre del juego de caracteres deseado, como gbk, gb2312, latinl, etc. Después de la modificación, reinicie el servicio MySQL para que surta efecto. Los lectores pueden usar SHOW VARIABLES LIKE'character_set_ °% '; comando para ver el juego de caracteres actual al modificar el juego de caracteres para comparar.

16. ¿Se puede aplicar DISTINCT a todas las columnas?
En el resultado de la consulta, si necesita ordenar las columnas en orden descendente, puede usar DESC. Esta palabra clave solo puede ordenar las columnas en orden descendente. Por ejemplo, para ordenar varias columnas en orden descendente, la palabra clave DESC debe agregarse después del nombre de cada columna.

A diferencia de DISTINCT, DISTINCT no se puede utilizar parcialmente. En otras palabras, la palabra clave DISTINCT se aplica a todas las columnas y no solo a la primera columna especificada después de ella. Por ejemplo, consulte 3 campos s_id, f_name, f_price, si los valores combinados de estos 3 campos de diferentes registros son diferentes, se consultarán todos los registros.

17. ¿Se puede mezclar ORDER BY con LIMIT?
Cuando use la cláusula ORDER BY, debe asegurarse de que esté después de la cláusula FROM. Si usa LIMIT, debe estar después de ORDER BY. Si el orden de las cláusulas es incorrecto, MySQL generará un mensaje de error.

18. ¿Cuándo usar las comillas?
Al realizar una consulta, verá las condiciones utilizadas en la cláusula WHERE, algunos valores se agregan con comillas simples y algunos valores no se agregan. Las comillas simples se utilizan para calificar cadenas. Si compara un valor con una columna de tipo cadena, debe calificar las comillas; y cuando lo usa para comparar con un valor, no necesita usar comillas.

19. ¿Tiene que usar paréntesis en la cláusula WHERE?
Siempre que se use una cláusula WHERE con operadores AND y OR, se deben usar paréntesis para aclarar el orden de las operaciones. Si hay muchas condiciones, incluso si se puede determinar el orden de cálculo, el orden de cálculo predeterminado puede dificultar la comprensión de la instrucción SQL, por lo que es un buen hábito utilizar paréntesis para aclarar el orden de los operadores.

20. ¿Debe especificarse una cláusula WHERE al actualizar o eliminar una tabla?
Como puede ver en el capítulo anterior, todas las declaraciones UPDATE y DELETE especifican condiciones en la cláusula WHERE. Si se omite la cláusula WHERE, UPDATE o DELETE se aplicará a todas las filas de la tabla.

Por lo tanto, a menos que realmente tenga la intención de actualizar o eliminar todos los registros, debe prestar atención al uso de declaraciones UPDATE o DELETE sin cláusulas WHERE. Se recomienda utilizar la instrucción SELECT para confirmar los registros que deben eliminarse antes de actualizar y eliminar la tabla para evitar resultados irreversibles. Haga clic aquí para resumir las 55 preguntas de la entrevista MYSQL para la entrevista BAT.

21. Los índices son tan importantes para el rendimiento de la base de datos, ¿cómo deben usarse?
Elegir el índice correcto para la base de datos es una tarea compleja. Si hay menos columnas de índice, se requiere menos espacio en disco y menos gastos generales de mantenimiento. Si se crean varios índices compuestos en una tabla grande, el archivo de índice se expandirá muy rápidamente.

Por otro lado, más índices pueden cubrir más consultas. Puede ser necesario experimentar con varios diseños diferentes para encontrar el índice más eficaz. Puede agregar, modificar y eliminar índices sin afectar la arquitectura de la base de datos o el diseño de la aplicación. Por lo tanto, debe probar varios índices diferentes para crear el mejor índice.

22. Intente utilizar índices cortos.
Para indexar campos de tipo cadena, se debe especificar una longitud de prefijo si es posible. Por ejemplo, si hay una columna CHAR (255), si el valor múltiple es único dentro de los primeros 10 o 30 caracteres, no es necesario indexar toda la columna. El índice corto no solo puede mejorar la velocidad de las consultas, sino también ahorrar espacio en disco y reducir las operaciones de E / S.

23. ¿Cuál es la diferencia entre los procedimientos almacenados y las funciones de MySQL?
En esencia, todos son procedimientos almacenados. Las funciones solo pueden devolver un único valor o un objeto de tabla a través de la declaración de devolución; los procedimientos almacenados no pueden ejecutar la devolución, pero pueden devolver varios valores a través de los parámetros. Hay muchas restricciones en las funciones, no se pueden usar tablas temporales, solo se pueden usar variables de tabla y algunas funciones no están disponibles, etc .; las restricciones en los procedimientos almacenados son relativamente pequeñas. Las funciones se pueden incrustar en sentencias SQL y se pueden llamar como parte de una sentencia de consulta en una sentencia SELECT; los procedimientos almacenados generalmente se ejecutan como una parte independiente.

24. ¿Se puede cambiar el código del procedimiento almacenado?
En la actualidad, MySQL no proporciona modificaciones al código de procedimiento almacenado existente. Si debe modificar el procedimiento almacenado, debe usar la instrucción DROP para eliminarlo y luego reescribir el código o crear un nuevo procedimiento almacenado.

25. ¿Se pueden llamar a otros procedimientos almacenados durante el procedimiento almacenado?
El procedimiento almacenado contiene un conjunto de sentencias SQL definidas por el usuario. Puede utilizar la sentencia CALL para llamar al procedimiento almacenado. Por supuesto, también puede utilizar la sentencia CALL para llamar a otros procedimientos almacenados en el procedimiento almacenado, pero no puede utilizar la sentencia DROP para eliminar otros procedimientos almacenados.

26. Los parámetros del procedimiento almacenado no deben ser los mismos que los nombres de campo en la tabla de datos.
Al definir la lista de parámetros del procedimiento almacenado, debe prestar atención para distinguir el nombre del parámetro del nombre del campo en la tabla de la base de datos; de lo contrario, se producirán resultados impredecibles.

27. ¿Pueden los parámetros del procedimiento almacenado utilizar chino?
En circunstancias normales, puede haber casos en los que se pasen parámetros chinos durante un procedimiento almacenado. Por ejemplo, un procedimiento almacenado busca la información del usuario basándose en el nombre del usuario, y el valor del parámetro pasado puede ser chino. En este momento, debe agregar el juego de caracteres gbk al final cuando defina el procedimiento almacenado; de lo contrario, obtendrá un error al llamar al procedimiento almacenado con parámetros chinos. Por ejemplo, para definir el procedimiento almacenado userInfo, el código es el siguiente:

CREAR PROCEDIMIENTO useInfo (IN u_name VARCHAR (50) juego de caracteres gbk, OUT u_age INT)

28. ¿Cuál es la diferencia y la conexión entre vistas y tablas en MySQL?

La diferencia entre los dos:

(1) Una vista es una declaración SQL compilada, una tabla visual basada en el conjunto de resultados de la declaración SQL, pero una tabla no lo es.

(2) La vista no tiene registros físicos reales, pero la tabla básica sí.

(3) La tabla es el contenido y la vista es la ventana.

(4) La mesa ocupa el espacio físico y la vista no ocupa el espacio físico La vista es solo un concepto lógico La tabla se puede modificar en el tiempo, pero la vista solo se puede modificar con el enunciado creado.

(5) La vista es una forma de ver la tabla de datos. Puede consultar los datos compuestos por ciertos campos en la tabla de datos, que es solo una colección de algunas declaraciones SQL. Desde una perspectiva de seguridad, la vista puede evitar que el usuario toque la tabla de datos, por lo que el usuario no conoce la estructura de la tabla.

(6) La tabla pertenece a la tabla en el modo global y es una tabla real; la vista pertenece a la tabla en el modo local y es una tabla virtual.

(7) La creación y eliminación de vistas solo afectan a la vista en sí, no a la tabla básica correspondiente.

La conexión entre los dos:

Una vista es una tabla construida sobre una tabla básica, su estructura (es decir, las columnas definidas) y contenido (es decir, todos los registros) provienen de la tabla básica y existe en base a la existencia de la tabla básica. Una vista puede corresponder a una tabla básica, también

Puede corresponder a múltiples tablas básicas. Las vistas son abstracciones de tablas básicas y nuevas relaciones establecidas en un sentido lógico.

29. Preste especial atención cuando utilice desencadenantes.
Cuando utilice desencadenadores, debe prestar atención. Para la misma tabla, el mismo evento solo puede crear un desencadenador. Por ejemplo, si crea un desencadenador BEFORE INSERT para la cuenta de la tabla, si vuelve a crear un desencadenador BEFORE INSERT para la cuenta de la tabla, MySQL Se informará un error. En este momento, solo se pueden crear activadores de tipo AFTER INSERT o BEFORE UPDATE en la cuenta de la mesa. El uso flexible de los disparadores evitará muchos problemas de funcionamiento. Haga clic aquí para resumir las 55 preguntas de la entrevista MYSQL para la entrevista BAT.

30. Elimine los desencadenantes que ya no son necesarios a tiempo.
Una vez definido el disparador, cada vez que se ejecuta el evento disparador, se activa el disparador y se ejecutan las sentencias en el disparador. Si los requisitos cambian y el activador no cambia ni elimina el activador, el activador seguirá ejecutando la declaración anterior, lo que afectará la integridad de los nuevos datos. Por lo tanto, los desencadenantes que ya no se utilizan deben eliminarse a tiempo.

31. ¿Qué método debo utilizar para crear un usuario?
Hay varias formas de crear un usuario: declaración GRANT, declaración CREATE USER y manipulación directa de la tabla de usuarios. En general, es mejor usar declaraciones GRANT o CREATE USER en lugar de insertar directamente la información del usuario en la tabla de usuarios, ya que la tabla de usuarios almacena permisos de nivel global y otra información de la cuenta. Si destruye accidentalmente los registros en la tabla de usuarios, puede Tendrá un gran impacto en el servidor MySQL.

32. ¿Se pueden usar los archivos respaldados por mysqldump solo en MySQL?
El archivo de texto respaldado por mysqldump es en realidad una copia de la base de datos. Puede usar este archivo no solo para restaurar la base de datos en MySQL, sino también para restaurar la base de datos en otras bases de datos como SQL Server o Sybase simplemente modificando el archivo. Esto logra la migración entre bases de datos hasta cierto punto.

33. ¿Cómo elegir una herramienta de respaldo?
Copiar archivos de datos directamente es el método de copia de seguridad más directo y rápido, pero la desventaja es que las copias de seguridad incrementales básicamente no son posibles. Debe asegurarse de que estas tablas no se utilicen durante la copia de seguridad. Si el servidor está modificando una tabla mientras se está replicando, la replicación no es válida. Al hacer una copia de seguridad de los archivos, es mejor apagar el servidor y luego reiniciarlo. Para garantizar la coherencia de los datos, debe ejecutar la siguiente instrucción SQL antes de realizar una copia de seguridad de los archivos:

CREAR PROCEDIMIENTO useInfo (IN u_name VARCHAR (50) juego de caracteres gbk, OUT u_age INT)

El directorio puede ser. mysqlhotcopy es un programa PERL que usa LOCK TABLES, FLUSH TABLES y cp o scp para realizar rápidamente una copia de seguridad de la base de datos. Es la forma más rápida de hacer una copia de seguridad de una base de datos o de una sola tabla, pero solo se puede ejecutar en la máquina donde se encuentra el archivo de la base de datos y mysqlhotcopy solo se puede usar para hacer una copia de seguridad de las tablas MyISAM.

mysqlhotcopy es adecuado para la copia de seguridad de bases de datos pequeñas. La cantidad de datos no es grande. Puede utilizar el programa mysqlhotcopy para realizar una copia de seguridad completa todos los días. mysqldump lleva las tablas de datos a archivos de script SQL, lo cual es relativamente adecuado cuando se actualiza entre diferentes versiones de MySQL. Este también es el método de copia de seguridad más utilizado. mysqldump es más lento que la replicación directa. Es decir, los datos de la memoria se vacían en el disco y la tabla de datos se bloquea al mismo tiempo para garantizar que no se escriban nuevos datos durante el proceso de copia. Los datos respaldados por este método también son muy simples de restaurar, cópielos directamente a la base de datos original

34. ¿Qué troncos se deben abrir normalmente?
Los registros no solo afectarán el rendimiento de MySQL, sino que también ocuparán mucho espacio en el disco. Por lo tanto, si no es necesario, el registro debe activarse lo menos posible. Según los diferentes entornos de uso, puede considerar abrir diferentes registros. Por ejemplo, en el entorno de desarrollo para optimizar la declaración de eficiencia de la consulta, puede activar el registro de consultas lentas; si necesita registrar todas las operaciones de consulta del usuario, puede activar el registro de consultas general; si necesita registrar cambios en los datos, puede activar el registro binario; el registro de errores es el predeterminado Abierto.

35. ¿Cómo usar el registro binario?
El registro binario se utiliza principalmente para registrar cambios de datos. Si necesita registrar cambios en la base de datos, puede activar el registro binario. Según las características del registro binario, se puede utilizar no solo para la recuperación de datos, sino también para la replicación de datos.

En el caso de las copias de seguridad periódicas de la base de datos, si hay pérdida de datos, puede usar la copia de seguridad para restaurar la mayoría de los datos primero y luego usar el registro binario para restaurar los datos que han cambiado desde la copia de seguridad más reciente. En el caso de la copia de seguridad en caliente de sistema dual, puede usar el registro binario de MySQL para registrar los cambios en los datos y luego copiar los cambios en el servidor de copia de seguridad.

36. ¿Cómo utilizar el registro de consultas lentas?
El registro de consultas lentas se utiliza principalmente para registrar registros con un tiempo de consulta prolongado. En el entorno de desarrollo, puede activar el registro de consultas lentas para registrar declaraciones de consulta con un tiempo de consulta prolongado y luego optimizar estas declaraciones. Al configurar el valor de long_query_time, puede dominar de manera flexible diferentes grados de declaraciones de consulta lentas.

37. ¿Es mejor crear tantos índices como sea posible?
Un índice razonable puede mejorar la velocidad de la consulta, pero no cuanto más índices mejor. Al ejecutar la instrucción de inserción, MySQL debe indexar los registros recién insertados. Demasiados índices ralentizarán la operación de inserción. En principio, solo se indexan los campos utilizados en la consulta.

Supongo que te gusta

Origin blog.csdn.net/qq_21383435/article/details/108479153
Recomendado
Clasificación