la compresión de datos MySQL (tablas de compresión o columnas)

Problema: Cuando un usuario hasta una cierta cantidad de datos, problemas de rendimiento de MySQL, cómo reducir el espacio de almacenamiento de datos por debajo de la mesa para optimizar el
MySQL viene con funciones de compresión y descompresión

1 de compresión de datos tabular

270w tira de prueba tabla de almacenamiento de datos (room_record1) espacio de memoria 9G

CREATE TABLE `room_record1` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `room` int(11) NOT NULL,
  `uuid` varchar(100) NOT NULL,
  `info` blob NOT NULL,
  `timestamp` int(11) NOT NULL,
  `type` int(11) NOT NULL,
  PRIMARY KEY (`id`,`timestamp`),
  KEY `room` (`room`),
  KEY `uuid` (`uuid`),
  KEY `idx_timestamp` (`timestamp`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

Aquí Insertar imagen Descripción
campo de optimización: información de compresión de campos
de espacio:
Aquí Insertar imagen Descripción

optimizada estructura de la tabla:

CREATE TABLE `room_record2` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `room` int(11) NOT NULL,
  `uuid` varchar(100) NOT NULL,
  `info` blob NOT NULL,
  `timestamp` int(11) NOT NULL,
  `type` int(11) NOT NULL,
  PRIMARY KEY (`id`,`timestamp`),
  KEY `room` (`room`),
  KEY `uuid` (`uuid`),
  KEY `idx_timestamp` (`timestamp`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

INSERT INTO  `room_record2` (`id`, `room`, `uuid`, `info`, `timestamp`, `type`) VALUES ('202737598', '434436', 'f2ba4943-6779-494d-a103-0b86873462a3',compress( '[[0,2,\"4s\",[1,431642,-500,\"1s,1b,2s,2s,2b,2b,3b,4b,5s,8b,9s,9s,9b,Tb\",-2,-2,0,-1,\"194.5\"],[2,634577,295,\"2s,2s,2b,2b,3b,4b,4b,5b,6s,6s,7s,7b,8s,9b\",-2,-2,0,-1,\"829\"],[0,2,2,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,10,1,0,2,5,{\"min_gold_ka\":3,\"less_score_free\":5,\"limit_enter_battle_score\":50,\"limit_battle_score\":20,\"score_limit_open\":1,\"score_max_limit\":11,\"min_limit_gold_ka\":100,\"score_limit_open1\":1,\"score_max_limit1\":150,\"min_limit_gold_ka1\":300,\"less_score_reback_header\":-1,\"choupai_num\":0,\"tuoguan\":120,\"noreback\":0,\"beilv\":50,\"fanbei\":2,\"less_score\":5,\"fanbei_open\":1,\"add_score_open\":0,\"less_score_add_level\":1,\"add_score\":1,\"hutoall\":0,\"zhangshu\":3,\"changshuang\":1,\"tuoguan_mode\":1}]],[1,2,12,\"4s\",0,0,[[1,0,0],[2,0,0]]],[1,2,11,\"9b\",0,0,[[1,0,0],[2,0,0]]],[2,1,\"2,\"],[1,1,1,\"9b,9s,9s,9b,8b,Tb\",0,0,[[1,0,0],[2,0,0]]],[1,1,11,\"4b\",0,0,[[1,0,0],[2,0,0]]],[2,2,\"1,2,\"],[1,2,2,\"4b,4b,4b\",3,0,[[1,0,0],[2,0,0]]],[1,2,11,\"4s\",3,0,[[1,0,0],[2,0,0]]],[1,2,7,\"4s\",3,0,[[1,0,0],[2,0,0]]],[1,1,12,\"1s\",0,0,[[1,0,0],[2,0,0]]],[2,1,\"2,\"],[1,1,10,\"1s\",0,0,[[1,0,0],[2,0,0]]],[1,1,7,\"1s\",0,0,[[1,0,0],[2,0,0]]],[1,2,12,\"Ts\",3,0,[[1,0,0],[2,0,0]]],[1,1,9,\"\",0,0,[[1,0,0],[2,0,0]]],[1,1,12,\"Ts\",9,0,[[1,0,4],[2,0,-4]]],[3,1,[1,4,4,-500],[2,-4,-4,295],[1,\"1s,1b,2s,2s,2b,2b,3b,5s\"],[2,\"2s,2s,2b,2b,3b,5b,6s,6s,7s,7b,8s\"],[1,2,1,4,-1,0,2,-4,-1,0,3,1,\"Ts\",0,0,29,\"5s\",\"7b\",\"Tb\",\"4b\",\"5b\",\"6s\",\"9b\",\"3s\",\"3s\",\"9s\",\"6b\",\"Tb\",\"1s\",\"4s\",\"8s\",\"Ts\",\"7b\",\"6b\",\"3s\",\"Tb\",\"5b\",\"1b\",\"8b\",\"Ts\",\"7s\",\"7b\",\"5s\",\"5s\",\"7s\",2,1,8,\"1s\",\"1b\",\"2s\",\"2s\",\"2b\",\"2b\",\"3b\",\"5s\",2,11,\"2s\",\"2s\",\"2b\",\"2b\",\"3b\",\"5b\",\"6s\",\"6s\",\"7s\",\"7b\",\"8s\",5,5,0,3,\"9b\",\"9s\",\"9s\",3,0,3,\"9b\",\"8b\",\"Tb\",2,6,3,\"1b\",\"2b\",\"3b\",2,3,3,\"1s\",\"5s\",\"Ts\",5,0,3,\"2s\",\"2s\",\"2b\",9,4,\"Ts\",2,1,4,2,-4,2,434436,1,0,1582128000,4,10,0]]]'), '1582128000', '18');

En primer lugar explicar el tipo de Blob
1, MySQL BLOB Hay cuatro tipos:
  · TINYBLOB: sólo 255 caracteres
  · burbuja: un límite máximo de 65K bytes
  · MEDIUMBLOB: limitado a 16 millones de bytes
  · LONGBLOB: hasta 4 GB
2, además del tipo de límite de tamaño de archivo de acceso posterior, sino también para modificar el archivo de configuración de MySQL.
  Windows, Linux básico como modificando el my.ini archivo o my.cnf archivo, agregue max_allowed_packet = 10M en el archivo (es decir, el máximo 10M, por defecto MySQL parece 1MB, para asegurar que ningún aumento antes de encontrar el detonante)
3, hacer lo anterior ajustes después de un poco de tiempo para subir archivos más grandes o si un error o cuando ciertos documentos, como un galimatías periódico, se estima que el siguiente problema.
Juego de mesa de problemas de carácter o base de datos, tales como la conexión de hibernación UTF-8, y otras tablas son gbk, en general, siempre y cuando los datos proporcionados en la línea que conecta la parte de hibernación, como
jdbc: mysql: //192.168.0.4: 3306 / useUnicode prueba = true y characterEncoding =? UTF-8

  • La compresión
    usando la función de COMPRESS: COMPRESS (COL) puede, como se muestra, es una prueba de compresión de uno. formato de columna para el almacenamiento de datos comprimidos como campo BLOB BLOB formato binario, un contenedor puede almacenar grandes cantidades de datos), la tasa de compresión puede llegar a 80 a 90%
  • La descompresión
    usando el UNCOMPRESS función: UNCOMPRESS (col) puede ser, debido al formato comprimido es la cantidad de las generaciones futuras blob, entonces el formato después de la descompresión también es BLOB, tenía que convertir a una capa a la vista, como sigue:
select id,info '存储的',UNCOMPRESS(info)'解压的' ,cast(UNCOMPRESS(info) as char) '解压并转换' from room_record2

Tabla (room_record2) Datos:
Aquí Insertar imagen Descripción
Optimización de almacenamiento de datos comprimidos:
Aquí Insertar imagen Descripción
Resumen: La compresión de columna de tabla puede ahorrar espacio de almacenamiento de tabla efecto el 60%, el resultado es más objetiva

Tabla de compresión de datos 2

Puede hacer referencia a
la tabla de compresión: https: //www.cnblogs.com/mysql-dba/p/5125220.html

Publicado 10 artículos originales · ganado elogios 9 · visitas 445

Supongo que te gusta

Origin blog.csdn.net/weixin_43829047/article/details/104992252
Recomendado
Clasificación