Este es el comando pt-duplicate-key-checkerp que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
pt-duplicate-key-checker: encuentre índices duplicados y claves externas en tablas MySQL.
SINOPSIS
Uso: pt-duplicate-key-checker [OPCIONES] [DSN]
pt-duplicate-key-checker examina las tablas MySQL en busca de índices duplicados o redundantes y
llaves extranjeras. Las opciones de conexión se leen de los archivos de opciones de MySQL.
pt-verificador-de-claves-duplicadas --host host1
RIESGOS
Percona Toolkit es maduro, probado en el mundo real y bien probado, pero todas las bases de datos
las herramientas pueden suponer un riesgo para el sistema y el servidor de la base de datos. Antes de usar esta herramienta,
por favor:
· Leer la documentación de la herramienta
· Revise los "ERRORES" conocidos de la herramienta
· Pruebe la herramienta en un servidor que no sea de producción
· Realice una copia de seguridad de su servidor de producción y verifique las copias de seguridad
DESCRIPCIÓN
Este programa examina la salida de SHOW CREATE TABLE en tablas MySQL, y si encuentra
índices que cubren las mismas columnas que otro índice en el mismo orden, o cubren un
prefijo más a la izquierda de otro índice, imprime los índices sospechosos. Por defecto,
los índices deben ser del mismo tipo, por lo que un índice BTREE no es un duplicado de un índice FULLTEXT,
incluso si tienen las mismas columnas. Puede anular esto.
También busca claves foráneas duplicadas. Una clave externa duplicada cubre las mismas columnas
como otro en la misma tabla, y hace referencia a la misma tabla principal.
La salida termina con un breve resumen que incluye una estimación del tamaño total, en
bytes, que utilizan los índices duplicados. Esto se calcula multiplicando el índice.
longitud por el número de filas en sus respectivas tablas.
OPCIONES
Esta herramienta acepta argumentos de línea de comandos adicionales. Consulte la "SINOPSIS" y el uso
información para más detalles.
--todas las estructuras
Compare índices con diferentes estructuras (BTREE, HASH, etc.).
De forma predeterminada, esto está deshabilitado, porque un índice BTREE que cubre las mismas columnas que un
El índice FULLTEXT no es realmente un duplicado, por ejemplo.
--pedir-pasar
Solicitar una contraseña al conectarse a MySQL.
--juego de caracteres
forma corta: -A; tipo: cadena
Juego de caracteres predeterminado. Si el valor es utf8, establece el binmode de Perl en STDOUT en utf8,
pasa la opción mysql_enable_utf8 a DBD :: mysql y ejecuta SET NAMES UTF8 después
conectarse a MySQL. Cualquier otro valor establece binmode en STDOUT sin la capa utf8,
y ejecuta SET NAMES después de conectarse a MySQL.
- [no] agrupado
predeterminado: sí
Las columnas PK adjuntas a la clave secundaria están duplicadas.
Detecta cuando un sufijo de una clave secundaria es un prefijo más a la izquierda de la clave principal y
lo trata como una clave duplicada. Solo detecta esta condición en motores de almacenamiento cuyo
las claves primarias están agrupadas (actualmente InnoDB y solidDB).
Los motores de almacenamiento en clúster agregan las columnas de clave primaria a los nodos hoja de todos
claves secundarias de todos modos, por lo que puede considerar redundante que aparezcan en el
nodos internos también. Por supuesto, también puede quererlos en los nodos internos,
porque solo tenerlos en los nodos hoja no ayudará para algunas consultas. Ayuda
para cubrir consultas de índice, sin embargo.
A continuación, se muestra un ejemplo de una clave que se considera redundante con esta opción:
LLAVE PRIMARIA (`a`)
CLAVE `b` (` b`, `a`)
El uso de tales índices es bastante sutil. Por ejemplo, suponga que tiene lo siguiente
consulta:
SELECCIONAR ... DONDE b = 1 ORDENAR POR a;
Esta consulta hará un ordenamiento de archivos si eliminamos el índice en "b, a". Pero si acortamos el
indexar en "b, a" a solo "b" y también eliminar el ORDER BY, la consulta debe devolver el
mismos resultados
La herramienta sugiere acortar las claves agrupadas duplicadas al soltar la clave y volver a
agregarlo sin el prefijo de clave principal. La clave agrupada abreviada todavía puede
duplicar otra clave, pero la herramienta no puede detectar cuando esto sucede sin
se ejecuta por segunda vez para volver a comprobar las claves agrupadas recientemente abreviadas. Por tanto, si
acorta las claves agrupadas duplicadas, debe ejecutar la herramienta nuevamente.
--config
tipo: Matriz
Lea esta lista de archivos de configuración separados por comas; si se especifica, este debe ser el primero
opción en la línea de comando.
- bases de datos
forma corta: -d; tipo: hash
Compruebe solo esta lista de bases de datos separadas por comas.
--archivo-predeterminado
forma corta: -F; tipo: cadena
Solo lea las opciones de mysql del archivo dado. Debe dar un nombre de ruta absoluto.
- motores
forma corta: -e; tipo: hash
Compruebe solo las tablas cuyo motor de almacenamiento esté en esta lista separada por comas.
--ayuda
Muestre ayuda y salga.
--anfitrión
forma corta: -h; tipo: cadena
Conéctese al anfitrión.
--ignorar-bases de datos
tipo: Hash
Ignore esta lista de bases de datos separadas por comas.
- ignorar-motores
tipo: Hash
Ignore esta lista de motores de almacenamiento separados por comas.
- ignorar orden
Ignore el orden del índice para que KEY (a, b) duplique KEY (b, a).
--ignorar-tablas
tipo: Hash
Ignore esta lista de tablas separadas por comas. Los nombres de las tablas se pueden calificar con el
nombre de la base de datos.
--tipos de claves
tipo: cadena; predeterminado: fk
Compruebe si hay duplicados f = claves externas, k = claves o fk = ambas.
--contraseña
forma corta: -p; tipo: cadena
Contraseña para usar al conectarse. Si la contraseña contiene comas, deben escaparse
con una barra invertida: "exam \, ple"
--pid
tipo: cadena
Cree el archivo PID dado. La herramienta no se iniciará si el archivo PID ya existe y
el PID que contiene es diferente al PID actual. Sin embargo, si el archivo PID
existe y el PID que contiene ya no se está ejecutando, la herramienta sobrescribirá el PID
archivo con el PID actual. El archivo PID se elimina automáticamente cuando se cierra la herramienta.
--Puerto
forma corta: -P; tipo: int
Número de puerto que se utilizará para la conexión.
--set-vars
tipo: Matriz
Establezca las variables de MySQL en esta lista separada por comas de pares "variable = valor".
De forma predeterminada, la herramienta establece:
wait_timeout = 10000
Las variables especificadas en la línea de comando anulan estos valores predeterminados. Por ejemplo,
especificar "--set-vars wait_timeout = 500" anula el valor predeterminado de 10000.
La herramienta imprime una advertencia y continúa si no se puede establecer una variable.
--enchufe
formas cortas; tipo: cadena
Archivo de socket que se utilizará para la conexión.
- [no] sql
predeterminado: sí
Imprima la declaración DROP KEY para cada clave duplicada. Por defecto, una TECLA ALTERAR TABLA DROP
La declaración se imprime debajo de cada clave duplicada para que, si desea quitar la
clave duplicada, puede copiar y pegar la declaración en MySQL.
Para deshabilitar la impresión de estas declaraciones, especifique "--no-sql".
- [no] resumen
predeterminado: sí
Imprimir resumen de índices al final de la salida.
--mesas
forma corta: -t; tipo: hash
Compruebe solo esta lista de tablas separadas por comas.
Los nombres de las tablas se pueden calificar con el nombre de la base de datos.
--usuario
forma corta: -u; tipo: cadena
Usuario para iniciar sesión si no es el usuario actual.
--verboso
forma corta: -v
Genere todas las claves y / o claves externas encontradas, no solo las redundantes.
--versión
Mostrar versión y salir.
- [no] verificación de versión
predeterminado: sí
Busque la última versión de Percona Toolkit, MySQL y otros programas.
Esta es una función estándar de "buscar actualizaciones automáticamente", con dos
características. Primero, la herramienta verifica la versión de otros programas en el sistema local en
además de su propia versión. Por ejemplo, verifica la versión de cada servidor MySQL.
se conecta a Perl y al módulo de Perl DBD :: mysql. En segundo lugar, comprueba y advierte
sobre versiones con problemas conocidos. Por ejemplo, MySQL 5.5.25 tenía un error crítico y
fue relanzado como 5.5.25a.
Cualquier actualización o problema conocido se imprime en STDOUT antes de la salida normal de la herramienta.
Esta característica nunca debe interferir con el funcionamiento normal de la herramienta.
Para más información visite .
DSN OPCIONES
Estas opciones de DSN se utilizan para crear un DSN. Cada opción se da como "opción = valor".
Las opciones distinguen entre mayúsculas y minúsculas, por lo que P y p no son la misma opción. No puede haber
espacios en blanco antes o después del "=" y si el valor contiene espacios en blanco, se debe citar.
Las opciones de DSN están separadas por comas. Consulte la página de manual de percona-toolkit para obtener detalles completos.
· UNA
dsn: juego de caracteres; copia: si
Juego de caracteres predeterminado.
· D
dsn: base de datos; copia: si
Base de datos predeterminada.
F
dsn: mysql_read_default_file; copia: si
Leer solo las opciones predeterminadas del archivo dado
· H
dsn: host; copia: si
Conéctese al anfitrión.
· pag
dsn: contraseña; copia: si
Contraseña para usar al conectarse. Si la contraseña contiene comas, deben escaparse
con una barra invertida: "exam \, ple"
· PAG
dsn: puerto; copia: si
Número de puerto que se utilizará para la conexión.
· S
dsn: mysql_socket; copia: si
Archivo de socket que se utilizará para la conexión.
· U
dsn: usuario; copia: si
Usuario para iniciar sesión si no es el usuario actual.
MEDIO AMBIENTE
La variable de entorno "PTDEBUG" habilita la salida de depuración detallada a STDERR. Para permitir
depurar y capturar toda la salida en un archivo, ejecute la herramienta como:
PTDEBUG = 1 pt-duplicate-key-checker ...> ARCHIVO 2> & 1
Tenga cuidado: la salida de depuración es voluminosa y puede generar varios megabytes de salida.
LITE PARA TECHOS PLANOS REQUISITOS
Necesita Perl, DBI, DBD :: mysql y algunos paquetes centrales que deberían instalarse en cualquier
versión razonablemente nueva de Perl.
Use pt-duplicate-key-checkerp en línea usando los servicios de onworks.net