Operación Python MySQL motor de base de datos y tablas de base de aprender juego de caracteres mono #

# Motor de base de datos MySQL y el conjunto de caracteres mesa

! [] (./ IMG / 752951346A5F4E7EBDE362FA97107707.png)

1. El servidor ### procesa las solicitudes del cliente

De hecho, tanto los procesos de servidor y cliente, que son manera de comunicarse, para lograr el efecto final son los siguientes: * El proceso cliente envía un texto (declaraciones de MySQL) para el proceso de servidor de proceso del servidor y luego enviar alguna al proceso de cliente texto (procesamiento de resultados). ** Dicho servidor procesa la solicitud enviada por el proceso de cliente que se ha hecho el procesamiento con el fin de producir el resultado final del procesamiento de la misma? El cliente puede enviar al servidor ABM todo tipo de peticiones, estamos aquí para consultas más complejas como ejemplo para mostrar que aproximadamente dibujar un mapa del proceso:

! [Imagen] (./ IMG / 167f4c7b99f87e1c.png)

> A pesar de la caché de consultas a veces puede mejorar el rendimiento del sistema, sino también para el mantenimiento de este caché había causado algo de sobrecarga, como cada vez que el caché de consultas a las consultas de búsqueda procesados ​​para actualizar la caché de consultas, mantenimiento caché de consultas de los correspondientes área de memoria. A partir de MySQL 7.5.20, no se recomienda la caché de consultas y de eliminación de MySQL 8.0 en.

### 2. Motor de almacenamiento

`Almacenamiento de datos de servidor MySQL` y operaciones de recuperación se encapsulan en un motor de almacenamiento se denomina la` `módulo. `` Sabemos que la mesa se compone de registros de línea por línea, pero esto es sólo un concepto lógico, la forma de representar los registros físicos, cómo leer los datos de la tabla, cómo los datos se escriben en una memoria física específica, que son `` motor de almacenamiento está a cargo de las cosas. Con el fin de conseguir diferentes funciones, `ofertas MySQL` una amplia variedad de engine` de almacenamiento`, la estructura diferente specific` motor de gestión de almacenamiento de almacenamiento de tablas `puede ser diferente, algoritmo de acceso puede ser diferente.

> Motor de almacenamiento antes llamado `` tabla procesador, su función se transmite la instrucción de recepción de una capa superior, a continuación, extraer la tabla de datos o una operación de escritura.

Para facilitar el manejo, la gente de gestión de conexiones a ``, `` caché de consultas, `` de análisis, optimización de consultas `` Estos no se refieren a datos reales división de la función de almacenamiento es `función de MySQL server`, la función de acceso real a los datos `` dividido en funciones de motor de almacenamiento. Una variedad de diferentes motores de almacenamiento proporcionan una interfaz de llamada unificado (que es, el API motor de almacenamiento) a `MySQL capa server` en la parte superior, incluyendo docenas de funciones de bajo nivel, tales como "leer el índice de las primeras piezas de contenido"," leer el índice siguiente contenido "" inserción de registro "y así sucesivamente.

Después de que se haya completado en `MySQL server` consulta optimización, sólo tiene que llamar a la API proporcionada por la generación del plan de ejecución del motor de almacenamiento subyacente, el acceso a los datos se devuelve al cliente muy bien.

`MySQL` soporta una gran variedad de motores de almacenamiento:

| Motor de almacenamiento | Descripción |

| : ---------: | : ----------------------------------: |

| `ARCHIVE` | para archivar datos (no se puede modificar la fila se inserta) |

| `BLACKHOLE` | descartar la operación de escritura, una operación de lectura volverá contenido vacío |

| `CSV` | para el almacenamiento de datos, separados por comas elementos de datos individuales |

| `FEDERATED` | utilizado para tablas de acceso remoto |

| `InnoDB` | con el apoyo clave externa motor de almacenamiento |

| `MEMORY` | colocado en la tabla de memoria |

| `MERGE` | utilizado para gestionar una colección de tablas que constan de varias tablas MyISAM |

| `MyISAM` | importante motor de almacenamiento no transaccional |

| NDB` `| MySQL Cluster motor de almacenamiento dedicado |

Diferencia ### 3, MyISAM e InnoDB motor de mesa

#### 1) soporte de transacciones

MyISAM no admite transacciones, mientras que el soporte de InnoDB.

> Cosas: acceder y actualizar datos en la unidad de ejecución de base de datos. Las cosas funcionan bien en realizar o no realizar

#### 2) Memoria

MyISAM: Cada almacenamiento MyISAM en tres archivos en el disco.

+ fichero .frm almacena la estructura de tabla.

+ .MYD archivo para almacenar datos.

+ .MYI índice de almacenamiento de archivos.

InnoDB: dos tipos principales de almacenamiento de archivos

+ Estructura de la tabla de almacenamiento .FRM

+ Almacenar e indexar datos .ibd (archivo .ibd posiblemente múltiple, o un espacio de tablas archivo separado)

#### 3) las diferencias de bloqueo de tabla

** MyISAM: sólo admite bloqueo de nivel de tabla **, los usuarios myisam operativo mesa, seleccionar, actualizar, eliminar, insertar declaraciones se bloquean automáticamente a la tabla, en el caso de concurrentes insertar tabla se encuentran más adelante si está bloqueado, se puede ver la cola de inserción de nuevos datos.

** InnoDB: transacciones soportes y el bloqueo de fila, innodb es la característica más prominente **. bloqueo de registro a mejorar en gran medida la multiusuario funcionamiento en paralelo de nueva energía. Sin embargo, InnoDB bloqueo de registro, excepto la clave principal en el WHERE es una clave eficaz, no primario en el DONDE bloqueará toda la tabla.

#### 4) clave primaria

MyISAM: La tabla no permite ningún índice y existe la clave principal, la línea de dirección del índice se guardan.

InnoDB: Si no hay clave principal no nulo o índice único, van a generar automáticamente una clave de 6 bytes principal (no visible a los usuarios), la parte de datos del índice principal, el índice se almacena un valor adicional del índice principal. InnoDB mayor gama de clave principal es el doble del máximo de MyISAM.

DETALLADA #### 5 filas) de la tabla

MyISAM: Guardar el número de filas de la tabla tiene, si el select count () de la tabla; será tomada directamente este valor.

InnoDB: número de filas en la tabla no se guarda (sólo travesía), si se utiliza select count () de la tabla, sino que atravesar toda la tabla, el consumo es bastante grande, pero añadió una condición después de wehre, innodb manera myisam y procesamiento son los mismos.

#### 6) operación CUAJADA

MyISAM: Si se realiza una gran cantidad de SELECT, MyISAM es una mejor opción.

InnoDB: Si se realiza un gran número de datos INSERT o UPDATE, por motivos de rendimiento, se debe utilizar tablas InnoDB. Eliminar en el rendimiento de InnoDB mejor, pero DELETE FROM tabla, InnoDB no se volverá a establecer la mesa, pero la línea de borrado de línea, en el innodb Si desea guardar un gran número de mesas vacías de los datos, lo mejor es utilizar el comando TRUNCATE TABLE.

#### 7), llave

MyISAM: no es compatible

InnoDB: Apoyo

#### 8) eficiencia de la consulta

MyISAM es relativamente simple, por lo que la eficiencia es mejor que InnoDB, una pequeña aplicación, considere el uso de MyISAM.

Recomendado considerar el uso de InnoDB en lugar de motor MyISAM, InnoDB en sí, porque un montón de buenas características, como soporte de transacciones, procedimientos almacenados, vistas, el bloqueo de filas, y por lo tanto, en muchos casos Al mismo tiempo, creo que el rendimiento de InnoDB MyISAM es ciertamente mejor que mucho más fuerte .

Además, cualquier tipo de tabla no es una panacea, sólo el derecho a elegir el tipo de negocio para el tipo de tabla que se utiliza para jugar la mayor ventaja de rendimiento de MySQL. Si no es muy aplicaciones web complejas, aplicaciones no críticas, todavía se puede seguir a considerar MyISAM, y esta situación puede ser dueño de discreción.

#### 9) ambos escenarios MyISAM y InnoDB:

MyISAM gestionar tabla no transaccional. Proporciona almacenamiento de alta velocidad y recuperación, así como las capacidades de búsqueda de texto completo. Si la aplicación necesita para llevar a cabo un gran número de consulta SELECT, MyISAM es una mejor opción.

InnoDB para aplicaciones de procesamiento de transacciones, tiene muchas características incluyendo soporte de transacciones ACID. Si la aplicación necesita realizar una gran cantidad de INSERT o la operación de actualización, debería utilizar InnoDB, que puede mejorar el rendimiento de las operaciones simultáneas de varios usuarios. Ahora utilizado por defecto InnoDB.

### 4. vistazo a los personajes y ilegible

#### Introducción al juego de caracteres

Sabemos que sólo los datos binarios almacenados en el ordenador, a continuación, cómo almacenar cadenas que? Por supuesto, es para establecer correspondencia entre el carácter y datos binarios, y el establecimiento de esta relación, al menos para averiguar dos cosas que los niños:

1. ¿Qué desea que el mapa de caracteres en datos binarios?

  Eso está claramente definido rango de caracteres.

2. ¿Cómo mapeo?

  Un personaje asignada a un conjunto de datos binarios proceso de codificación se llama `` datos binarios a un proceso de mapeo de la decodificación de un personaje llamado ``.

Concepto abstracto de un `` juego de caracteres para describir el rango de unas normas de codificación de caracteres

Nos fijamos en el caso de algunos juegos de caracteres comunes:

- `juego de caracteres ASCII`

  Contiene un total de 128 caracteres, incluyendo espacios, puntuacion, números, mayúsculas y minúsculas, y algunos caracteres invisibles. Debido a que un total de sólo 128 caracteres, por lo que se puede utilizar de 1 byte para codificar, nos fijamos en algunos de la codificación de caracteres:

  `` `

  'L' -> 01001100 (Hex: 0x4C, decimales: 76)

  'M' -> 01001101 (Hex: 0x4D, decimal: 77)

  `` `

- ISO conjunto `8859-1` carácter

  Contiene un total de 256 caracteres, se basa en juegos de caracteres `ASCII` y ampliado 128 caracteres de uso común en Europa Occidental (incluyendo Francia y Alemania letras), se puede utilizar un byte a ser codificada. Este conjunto de caracteres también tiene un alias `latin1`.

- conjunto de caracteres `GB2312`

  Una colección de caracteres y el alfabeto latino, letras griegas, caracteres hiragana y katakana japonés, ruso alfabeto cirílico. Que incluyó 6763 caracteres chinos, otros símbolos de texto 682. Al mismo tiempo, este conjunto de caracteres y `ASCII` juegos de caracteres compatibles, por lo que la codificación poco extraño:

  - Si el juego de caracteres en el carácter `ASCII` está codificado en un byte.

  - De lo contrario, un código de 2 bytes.

  Este carácter indica el número de bytes pueden requerir una codificación diferente se llama `` codificación de longitud variable. Por ejemplo la cadena '' amor u'`, en el que ` 'amor' 'necesidades para ser codificadas utilizando dos bytes, hexadecimal codificado as` 0xCED2`,`' u'` necesita 1 byte codificar, codificada en notación hexadecimal como `0x75`, por lo divide as` 0xCED275`.

  > Consejos: ¿cómo distinguimos entre un byte representa un único carácter o una parte de un carácter representar? Recuerde `juego de caracteres ASCII` incluye sólo 128 caracteres, usando 0 a 127 puede representar a todos los personajes, por lo que si un byte está en el rango de 0 a 127, esto significa que un byte representa un solo carácter de lo contrario, es decir, dos bytes representan un solo carácter.

- conjunto de caracteres `GBK`

  `GBK` conjunto de caracteres sólo incluía la ampliación de la gama de caracteres del juego de caracteres were` GB2312`,` GB2312` de codificación compatibles.

- `juego de caracteres utf8`

  Todos los caracteres incluidos pueden pensar en la Tierra, sino también en expansión. Este conjunto de caracteres compatible carácter conjunto `ASCII`, utilizando la codificación de longitud variable, un carácter codificado requiere 1-4 bytes, así por ejemplo:

  `` `

  'L' -> 01001100 (Hex: 0x4C)

  'Ah' -> 111001011001010110001010 (Hex: 0xE5958A)

  `` `

  > Consejos: de hecho, para ser exactos, el esquema de codificación UTF-8 es sólo un conjunto de caracteres Unicode, juego de caracteres Unicode UTF-8 puede ser usado, utf16, utf32 estos tipos de esquemas de codificación, UTF-8 usando de 1 a 4 bytes que codifican un personaje, utf16 uso de dos o de cuatro bytes que codifica un carácter, utf32 codifica utilizando un carácter de 4 bytes. conocimiento más detallado no es el tema central de este libro y su esquema de codificación Unicode, miramos hacia arriba Ha ~ MySQL no distingue entre el concepto de conjunto de caracteres y el esquema de codificación, es el momento de dejar atrás persistente utf8, utf16, utf32 son tan Un tratamiento conjunto de caracteres.

Por el mismo carácter, diferentes juegos de caracteres pueden tener también una codificación diferente. Por ejemplo, para el carácter chino '' I '' es decir, `juego de caracteres ASCII` qué no incluyeron este personaje,` `utf8` y gb2312` conjunto de caracteres de codificación de characters` china` I siguiente:

`` `

codificación UTF8: 111001101000100010010001 (3 bytes, notación hexadecimal es: 0xE68891)

gb2312 codificación: 1100111011010010 (2 bytes notación hexadecimal es: 0xCED2)

`` `

### 5.MySQL en UTF-8 y utf8mb4

Hemos dicho anteriormente `juego de caracteres utf8` requiere el uso de un personaje de 1 a 4 bytes, pero utilizamos algunos de los personajes de 1 a 3 bytes puede ser expresada. En el juego de caracteres MySQL` 'indica la longitud máxima de bytes en algunos aspectos y puede afectar al rendimiento del sistema de almacenamiento, por lo que el diseño del `tío MySQL` definir dos conceptos utilizados en secreto por un personaje:

- `utf8mb3`: castrated` utf8` conjunto de caracteres, sólo de 1 a 3 bytes representan el carácter.

- `utf8mb4`:` auténtico juego de caracteres utf8`, usando de 1 a 4 bytes caracteres.

Una cosa que necesitamos es una nota en el utf8mb3` `` MySQL`` utf8` alias, lo que significa que después de la utilización mention` utf8` 1 a 3 bytes para representar un personaje en `MySQL` en Si usted tiene un caso de utilizar un 4-byte caracteres codificados, como lo que para almacenar alguna expresión emoji, a continuación, utilizar el `utf8mb4`.

#### Juego de caracteres Ver

`MySQL` una gran cantidad de buen soporte para varios conjuntos de caracteres, consulte la MySQL` current` conjunto de caracteres soportados pueden utilizar esta declaración a continuación:

`` `Mysql

mostrar charset;

`` `

 


 

El dominio método de aprendizaje, ya que se doblará para superar!

Aprender a simios: los logros de su propia simplemente una boutique!

Supongo que te gusta

Origin www.cnblogs.com/itxdl/p/12530715.html
Recomendado
Clasificación