La Red de Conocimientos Pedagógicos - Conocimientos históricos - ¿Qué es una base de datos MySql?

¿Qué es una base de datos MySql?

Base de datos MySQL: MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto que utiliza el lenguaje de gestión de bases de datos más utilizado: el lenguaje de consulta estructurado (SQL) para la gestión de bases de datos.

MySQL es de código abierto y cualquier persona puede descargarlo bajo la Licencia Pública General y modificarlo para adaptarlo a sus necesidades personales.

MySQL ha llamado mucho la atención por su velocidad, fiabilidad y adaptabilidad. La mayoría de la gente piensa que MySQL es la mejor opción para gestionar contenido sin procesamiento de transacciones.

Introducción a la base de datos: MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto. El sistema de base de datos MySQL utiliza el lenguaje de gestión de bases de datos más utilizado: el lenguaje de consulta estructurado (SQL) para la gestión de bases de datos.

Debido a que MySQL es de código abierto, cualquiera puede descargarlo bajo la Licencia Pública General y modificarlo para adaptarlo a sus necesidades personales. MySQL ha atraído mucha atención debido a su velocidad, confiabilidad y adaptabilidad. La mayoría de la gente piensa que MySQL es la mejor opción para gestionar contenido sin procesamiento de transacciones.

El origen del nombre MySQL no está muy claro. Una afirmación influyente es que durante más de 10 años, las guías básicas y una gran cantidad de bibliotecas y herramientas han tenido el prefijo "my" y, en cualquier caso, la hija de Monty Widenius, uno de los fundadores de MySQL AB, también lo fue. llamado my. Cuál de los dos le dio el nombre MySQL sigue siendo un misterio, incluidos los desarrolladores.

El nombre del logotipo del delfín de MySQL es "sakila", que fue seleccionado por el fundador de MySQL AB entre una gran cantidad de nombres recomendados por los usuarios en el concurso "Dolphin Naming". El nombre ganador fue proporcionado por Ambrose Twebaze, un desarrollador de software de código abierto de Suazilandia, África. Según Ambrose, Sakila proviene de un dialecto suazi llamado SiSwati, que también es el nombre de una ciudad en Arusha, Tanzania, cerca de Uganda, la ciudad natal de Ambrose.

MySQL, aunque su función puede no ser muy poderosa, pero debido a su código abierto y su amplia difusión, mucha gente conoce esta base de datos. Su historia también es legendaria.

Historia de la base de datos MySQL: La historia de MySQL se remonta a 1979. En ese momento, Oracle todavía era una pequeña empresa, sin rastro del SQL Server de Microsoft. Hay un hombre llamado Monty Widenius que trabaja para una pequeña empresa llamada TcX. Diseñó una herramienta de informes usando BASIC que puede ejecutarse en una computadora con una frecuencia principal de 4M y una memoria de 16KB. Poco después, la herramienta fue reescrita en C y portada a la plataforma Unix. En ese momento, era solo un motor de almacenamiento orientado a informes de muy bajo nivel. Esta herramienta se llama Unireg.

Sin embargo, esta pequeña empresa tiene recursos limitados y Monty es extremadamente talentoso. Ante las desventajas de los recursos limitados, es capaz de liberar su potencial y siempre se esfuerza por escribir el código más eficiente. Y así se formó un hábito. Monty también tiene otros colegas. Pocas personas pueden seguir escribiendo ese código durante 20 años, pero Monty sí.

En la década de 1990, algunos clientes de TcX comenzaron a solicitar soporte SQL para su API. En ese momento, algunas personas pensaron en utilizar bases de datos comerciales directamente, pero Monty sintió que la velocidad de las bases de datos comerciales no era satisfactoria. Entonces, con la ayuda del código mSQL, lo integró en su motor de almacenamiento. Pero lamentablemente el efecto no es muy bueno. Por lo tanto, Monty era ambicioso y estaba decidido a reescribir él mismo el soporte SQL.

En 1996 se lanzó MySQL 1.0, sólo para un pequeño grupo de personas, lo que equivalía a un lanzamiento interno. En junio de 1996, se lanzó MySQL 3.11.1. Jaja, no existe la versión 2.x. Inicialmente sólo se ofrecían versiones binarias bajo Solaris. Un mes después, apareció una versión para Linux.

En los dos años siguientes, MySQL fue portado a varias plataformas. Cuando se lanzó, la política de licencias adoptada fue algo diferente: se permitía el uso comercial gratuito, pero MySQL no podía lanzarse con productos propios. Si desea publicarlos juntos, debe utilizar una licencia especial, lo que implica gastar dinero. Por supuesto, el apoyo empresarial también cuesta dinero. Otros están disponibles para los usuarios.

Esta licencia especial aporta una cierta cantidad de ingresos a MySQL, sentando así una buena base para su desarrollo sostenible. Si lo piensas detenidamente, PostgreSQL ha estado en un punto bajo en los últimos años, lo que puede estar relacionado con que es completamente gratuito y sin restricciones.

MySQL3.22 debería ser la versión icónica, proporcionando soporte básico de SQL.

La primera versión de la base de datos relacional MySQL se lanzó en octubre de 1998+. Utiliza el mecanismo de subprocesos múltiples proporcionado por el núcleo del sistema para proporcionar un modo de operación de subprocesos múltiples completo, proporciona interfaces de programación (API) para C, C++, Eiffel, Java, Perl, PHP, Python, Tcl y otros lenguajes de programación, y admite varios tipos de campos Proporciona operadores completos para admitir operaciones SELECT y WHERE en consultas.

MySQL es de código abierto y cualquier persona puede descargarlo bajo la Licencia Pública General y modificarlo para adaptarlo a sus necesidades personales. MySQL ha atraído mucha atención debido a su velocidad, confiabilidad y adaptabilidad.

En 1999-2000, Suecia creó una empresa llamada MySQL AB (AB significa "sociedad anónima" en sueco). Se contrató a varias personas para trabajar con Sleepycat en el motor Berkeley DB. Debido a que BDB admite el procesamiento de transacciones, MySQL comenzó a admitir el procesamiento de transacciones.

En abril de 2000, MySQL resolvió el antiguo motor de almacenamiento y lo llamó MyISAM. Mientras tanto, en 2001, Heikiki Tuuri hizo una propuesta a MySQL para integrar su motor de almacenamiento InnoDB, que también admite el procesamiento de transacciones y el bloqueo a nivel de filas.

Desafortunadamente, parece que tanto BDB como InnoDB han sido adquiridos por Oracle. Para eliminar competidores, incluso si es de código abierto, se utilizará cualquier medio.

La versión oficial combinada de MySQL e InnoDB es la 4.0.

Con MySQL 5.0, desde junio de 5438 hasta febrero de 2003, comenzaron a aparecer cosas como vistas y procedimientos almacenados. Por supuesto, hubo muchos errores durante este período.

MySQL fue adquirida por Sun en junio de 2008.

Recientemente, el fundador de MySQL, Monty Widenius, presentó su renuncia a Sun. La cabeza se va.

Se dice que la empresa que adquirió Sun tiene mala suerte. No conozco el futuro de MySQL. Espero que tengas un buen viaje. Creo que MySQL todavía tiene una larga vida.

Hoy en día, la combinación de mysql y php es absolutamente perfecta. Muchos sitios web grandes también utilizan la base de datos MySQL. ¡Las perspectivas de desarrollo de mysql son muy brillantes!

Comandos comunes de MySQL: 1: Utilice la instrucción SHOW para averiguar qué base de datos existe actualmente en el servidor:

mysql & gt muestra la base de datos

2.2;

mysql & gtCrear base de datos MYSQLDATA

3.

mysql & gt usa MYSQLDATA (presione la tecla Enter, la base de datos ha sido cambiada, ¡lo que indica que la operación fue exitosa!)

4.

mysql & gt muestra la tabla;

5: Crear tabla de base de datos

mysql & gt crea la tabla MYTABLE (nombre VARCHAR(20), sexo CHAR( 1) );

6. Mostrar la estructura de la tabla:

mysql & gt describe mi tabla

7: Agregar registros a la tabla

p>

mysql & gt INSERT INTO MYTABLE VALUE ("hyq", "M");

8. Cargar datos en una tabla de base de datos mediante texto (por ejemplo, D:/mysql.txt) .

mysql & gt carga el archivo local de datos "D:/mysql.txt" en la tabla MYTABLE

9: Importar.

comando de archivo sql (por ejemplo, D:/mysql.sql)

mysql & gt usa la base de datos

mysql & gt source d:/MySQL

.

10: Eliminar tabla

mysql & gt eliminar tabla MYTABLE

11: Limpiar tabla

mysql & gt eliminar de mi tabla;

12: Actualizar datos en la tabla

mysql & gt update MYTABLE set sex="f "where name = ' hyq

Explicación de permisos de gestión global:

Archivo: lee y escribe archivos en el servidor MySQL.

Proceso: Mostrar o finalizar hilos de servicio pertenecientes a otros usuarios.

Recargar: Recargar la lista de control de acceso, actualizar el registro, etc.

Apagar: Apaga el servicio MySQL.

Permisos de base de datos/tabla de datos/columna de datos:

ALTERAR: modifica tablas de datos existentes (como agregar/eliminar columnas) e índices.

Crear: Crea una nueva base de datos o tabla de datos.

Eliminar: Elimina los registros de la tabla.

Eliminar: elimina la tabla de datos o base de datos.

Índice: Crear o eliminar índice.

Insertar: Añade registros a la tabla.

Seleccionar: Mostrar/buscar los registros de la tabla.

Actualización: Modificar registros existentes en la tabla.

Permisos especiales:

TODOS: te permite hacer cualquier cosa (como root).

Uso: Sólo se permite iniciar sesión, no se permiten otras operaciones.

Método de importación de la base de datos MySQL: Hay dos métodos para importar la base de datos MySQL:

1) Exportar primero el script SQL de la base de datos y luego importarlo

2; ) Copie directamente los directorios y archivos de la base de datos.

En diferentes sistemas operativos o versiones de MySQL, el método de copia directa de archivos puede ser incompatible.

Por lo tanto, generalmente se recomienda importar en forma de script SQL. Los dos métodos se presentan a continuación.

2. Método 1 Formulario de script SQL

Los pasos son los siguientes:

2.1. Exportar script SQL

En la base de datos original. servidor, los scripts SQL se pueden exportar usando la herramienta phpMyAdmin o la línea de comando mysqldump.

2.1.1, use la herramienta phpMyAdmin

En las opciones de exportación, elija exportar estructura y datos, no agregue las opciones DROP DATABASE y DROP TABLE.

Selecciona la opción guardar como archivo, o si tienes una gran cantidad de datos, selecciona la opción comprimido con gzip.

Guarde el archivo SQL exportado.

2.1.2 Usando la línea de comando mysqldump

Formato de comando

Mysqldump -u nombre de usuario -p nombre de la base de datos>; Lenguaje de consulta estructurado

Ejemplo:

mysqldump-u root-p ABC>abc.sql

(Exportar base de datos abc a archivo abc.sql)

Cuando se le solicite una contraseña, ingrese la contraseña para el nombre de usuario de la base de datos.

2.2. Crear una base de datos vacía

Crear la base de datos a través de la interfaz/panel de control principal. Supongamos que el nombre de la base de datos es abc y que el usuario completo de la base de datos es ABC_F.

2.3. Importar y ejecutar script SQL.

Existen otros dos métodos, uno es utilizar la herramienta phpMyAdmin (administración de bases de datos mysql) o la línea de comandos de mysql.

2.3.1 Usando la herramienta phpMyAdmin

En el panel de control, seleccione la base de datos vacía creada y haga clic en "Administrar" para ingresar a la página de la herramienta de administración.

En el menú "SQL", busque y seleccione el archivo SQL que acaba de exportar y haga clic en "Ejecutar" para cargarlo y ejecutarlo.

Nota: phpMyAdmin tiene límites en el tamaño de los archivos cargados, y el propio php también tiene límites en el tamaño de los archivos cargados. Si el archivo sql original

es relativamente grande, primero puede usar la compresión gzip. Para archivos de texto como archivos SQL, se puede obtener una relación de compresión de 1:5 o superior.

Cómo usar gzip:

# gzip xxxxx.sql

Obtener

archivo xxxxx.sql.gz.

Cuando se le solicite una contraseña, ingrese la contraseña para el nombre de usuario de la base de datos.

3 Copia directa

Si la base de datos es relativamente grande, puede considerar utilizar el método de copia directa, pero diferentes versiones y sistemas operativos pueden ser incompatibles, así que tenga cuidado.

3.1 Preparar el archivo original

Usa tar para empaquetarlo en un archivo

3.2 Crear una base de datos vacía

3.3 Descomprimir p>

Extraer a un directorio temporal, por ejemplo:

cd /tmp

tarzxf mydb.tar.gz

3.4 copiar

p>

Copie el archivo de base de datos descomprimido al directorio correspondiente.

cd mydb/

cp * /var/lib/mysql/mydb/

Para FreeBSD:

cp * /var/ db/mysql/mydb/

3.5 Configuración de permisos

Cambie el propietario del archivo copiado a mysql:mysql y los permisos a 660.

chown MySQL:MySQL/var/lib/MySQL/mydb/*

chmod 660 /var/lib/mysql/mydb/*

Mssql se convierte al método mysql: 1. Estructura de tabla derivada

Cómo generar un script de creación usando MySQL. Busque el script para generar la exportación y modifique la estructura de columnas de la tabla en la base de datos MySQL según la sintaxis de MySQL.

2. Derivar datos de tabla

Utilice bcp para exportar archivos de texto en el lado MSSQL;

bcp " Seleccione * FROM dbname . dbo . tablename; "query out tablename . txt-c-Slocalhost \ db 2005-Estados Unidos

Donde " " es la instrucción SQL que se exportará, -c especifica \t para representar la separación de campos, \n para representar la separación de registros, -c S representa el servidor de la base de datos y la instancia, -U significa nombre de usuario, -P significa contraseña.

Utilice mysqlimport en el lado de MySQL para importar un archivo de texto a la tabla correspondiente.

Importación de MySQL -u root-p nombre de base de datos/home/test/nombre de tabla txt

Donde -u especifica el nombre de usuario, -p especifica la contraseña, nombre de base de datos especifica el nombre de la base de datos. y el nombre de la tabla es el mismo que Los nombres de los archivos son los mismos.

Copia de seguridad y recuperación de MySQL: pasos generales para la copia de seguridad y recuperación de datos de MySQL

Ejemplo de copia de seguridad de la base de datos:

1. Lea las tablas involucradas en el bloqueo antes de realizar la copia de seguridad. arriba

mysql & gt lock table tbl1 read, tbl1 read,...

Si usa la opción -lock-tables en la utilidad mysqldump, no tiene que usar el declaración SQL anterior.

2. Exportar la estructura y datos de las tablas de la base de datos.

shell & gtmysqldump-opt db_name & gt;database name.sql

3 Habilitar nuevo registro de actualización

shell & gtmysqladmin registro de actualización

p>

De esta manera puede registrar los cambios de datos después de la copia de seguridad y prepararse para la recuperación de datos.

4. Desbloquea la mesa.

mysql> desbloquear tablas;

Para acelerar el proceso anterior, puede hacer esto:

shell >mysqldump-lock-tables-opt db_name& gt;db_name. sqlmysqladmin actualiza el registro

Pero puede haber un pequeño problema. Este comando restaura los bloqueos de lectura en la tabla antes de habilitar un nuevo registro de actualización.

En sitios que están ocupados con actualizaciones, es posible que haya datos actualizados que no se registren en el nuevo registro después de la copia de seguridad.

Ahora restaure la base de datos respaldada anteriormente.

1. Utilice bloqueos de escritura en tablas relacionadas.

mysql & gt lock table tbl1 write, tbl1 write,...

2 Restaurar los datos de la copia de seguridad

shell & gtmysql nombre de la base de datos & lt nombre de la base de datos. .sql

3.

shell & gtMySQL-one-database db_name <hostname.nnn

Supongamos que el nombre de registro que se utilizará es hostname.nnn

4. registro de actualización

registro de actualización de shell y gtmysqladmin

5.

mysql & gt unlock table;

Espero que el ejemplo anterior pueda inspirarte, porque hay muchas formas de hacer una copia de seguridad de los datos y la que uses puede ser muy diferente a la anterior. arriba Diferente, pero para la copia de seguridad y la recuperación, el tiempo para bloquear la tabla y habilitar un nuevo registro de actualización debe ser similar, por lo que este problema debe considerarse cuidadosamente.

Optimización de la base de datos MySQL: elija InnoDB como motor de almacenamiento

Las bases de datos de productos grandes requieren alta confiabilidad y alta concurrencia. InnoDB, como motor de almacenamiento MySQL predeterminado, es una mejor opción que MyISAM.

Optimizar la estructura de la base de datos

Organizar el esquema, las tablas y los campos de la base de datos para reducir la sobrecarga de E/S. Guarde los elementos relacionados juntos y planifique con anticipación la cantidad de datos. crece, el rendimiento también puede mantenerse en un alto nivel.

La tabla de datos debe diseñarse para minimizar el espacio que ocupa y la clave principal de la tabla debe ser lo más corta posible. Para las tablas InnoDB, la columna donde se encuentra la clave primaria se puede copiar en cada entrada del índice secundario, por lo que si hay muchos índices secundarios, una clave primaria corta puede ahorrar mucho espacio.

Cree solo los índices necesarios para mejorar el rendimiento de las consultas. Los índices facilitan la recuperación pero aumentan el tiempo de ejecución de las operaciones de inserción y actualización.

Cambiar las características de almacenamiento en búfer de InnoDB

InnoDB proporciona una configuración de almacenamiento en búfer de cambios, que puede reducir la E/S del disco necesaria para mantener índices secundarios. Las bases de datos grandes pueden experimentar operaciones de tablas intensas y E/S intensas para mantener actualizados los índices secundarios. Cuando la página relevante no está en el grupo de búfer, el búfer de cambios de InnoDB cambiará el caché a una entrada de índice secundaria, evitando así operaciones de E/S que consumen mucho tiempo causadas por no poder leer la página desde el disco inmediatamente. Cuando las páginas se cargan en el grupo de búfer, los cambios almacenados en el búfer se fusionan y las páginas actualizadas se descargan posteriormente en el disco. Hacerlo puede mejorar el rendimiento y es aplicable a MySQL 5.5 y superiores.

Compresión de páginas InnoDB

InnoDB admite la compresión de tablas a nivel de página. Al escribir páginas de datos, se utilizará un algoritmo de compresión específico para comprimirlas. Los datos comprimidos se escriben en el disco y su mecanismo de perforación libera bloques vacíos al final de la página. Si la compresión falla, los datos se escribirán sin cambios. Tanto las tablas como los índices se comprimirán, ya que los índices suelen constituir una gran parte del tamaño total de la base de datos. La compresión puede ahorrar significativamente memoria, E/S o tiempo de procesamiento, mejorando así el rendimiento y la escalabilidad. También reduce la cantidad de datos transferidos entre la memoria y el disco. MySQL5.1 y versiones posteriores admiten esta función.

Tenga en cuenta que la compresión de páginas no admite tablas en espacios de tablas compartidos. Los espacios de tablas compartidos incluyen espacios de tablas del sistema, espacios de tablas temporales y espacios de tablas regulares.

Usar la importación masiva de datos

Usar una fuente de datos ordenada en la clave principal para importar datos masivos puede acelerar el proceso de inserción de datos. De lo contrario, es posible que necesite insertar filas entre otras filas para mantener el orden, lo que provocará una alta E/S del disco, lo que afectará el rendimiento y aumentará las divisiones de páginas. También es beneficioso desactivar el modo de confirmación automática, ya que realiza un vaciado de registros en el disco en cada inserción. Cambiar temporalmente las comprobaciones de clave única y clave externa durante las inserciones masivas también puede reducir significativamente la E/S del disco. Para tablas recién creadas, la mejor práctica es crear restricciones de clave externa/clave única después de la importación masiva.

Una vez que sus datos alcancen un tamaño estable, o una tabla en crecimiento agregue decenas o cientos de megabytes, debería considerar usar la instrucción OPTIMIZETABLE para reorganizar la tabla y compactar el espacio desperdiciado. Escanear la tabla reorganizada costará menos E/S.

Optimización de la E/S del disco InnoDB

Aumentar el tamaño del grupo de búfer de InnoDB permite acceder a las consultas desde el grupo de búfer en lugar de a través de la E/S del disco. Al ajustar la variable del sistema innodb_flush_method, el índice del búfer de descarga se puede ajustar para lograr niveles óptimos.

Asignación de memoria para MySQL

Antes de asignar suficiente memoria para MySQL, considere los requisitos de memoria de MySQL en diferentes áreas. Las áreas clave a considerar son: Conexiones simultáneas: las clasificaciones y las tablas temporales requieren mucha memoria para dar cabida a la gran cantidad de conexiones simultáneas. Al momento de escribir este artículo, de 16 GB a 32 GB de RAM es más que suficiente para una base de datos con más de 3000 conexiones simultáneas.

La fragmentación de la memoria puede consumir aproximadamente el 10% o más de la memoria. Los cachés y buffers como innodb_buffer_pool_size, key_buffer_size y query_cache_size consumen aproximadamente el 80% de la memoria asignada.

Mantenimiento diario

Revise periódicamente los registros de consultas lentas y optimice el mecanismo de consulta para utilizar eficazmente la memoria caché y reducir la E/S del disco. Optimícelos para escanear una cantidad mínima de filas en lugar de escanear toda la tabla.

Otros registros que pueden ayudar al DBA a verificar y analizar el rendimiento incluyen registros de errores, registros de consultas generales, registros binarios y registros DDL (registros de metadatos).

Vacia periódicamente las cachés y los buffers para reducir la fragmentación. Utilice la instrucción OPTIMIZETABLE para reorganizar la tabla y compactar cualquier espacio potencialmente desperdiciado. ?