Aceasta este comanda pt-duplicate-key-checkerp care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
pt-duplicate-key-checker - Găsiți indecși duplicați și chei externe pe tabelele MySQL.
REZUMAT
Utilizare: pt-duplicate-key-checker [OPȚIUNI] [DSN]
pt-duplicate-key-checker examinează tabelele MySQL pentru indecși duplicați sau redundanți și
chei externe. Opțiunile de conectare sunt citite din fișierele de opțiuni MySQL.
pt-duplicate-key-checker --host host1
RISCURI
Percona Toolkit este matur, dovedit în lumea reală și bine testat, dar toate bazele de date
instrumentele pot prezenta un risc pentru sistem și serverul bazei de date. Înainte de a utiliza acest instrument,
Vă rog:
· Citiți documentația instrumentului
· Examinați cunoscutele „BUGS” ale instrumentului
· Testați instrumentul pe un server care nu este de producție
· Faceți copii de rezervă ale serverului de producție și verificați copiile de rezervă
DESCRIERE
Acest program examinează rezultatul SHOW CREATE TABLE pe tabelele MySQL și dacă găsește
indecși care acoperă aceleași coloane ca un alt index în aceeași ordine sau acoperă un exact
Prefixul cel mai din stânga al altui index, imprimă indecșii suspecti. În mod implicit,
indecșii trebuie să fie de același tip, deci un index BTREE nu este un duplicat al unui index FULLTEXT,
chiar dacă au aceleași coloane. Puteți trece peste acest lucru.
De asemenea, caută chei străine duplicate. O cheie externă duplicată acoperă aceleași coloane
ca altul din același tabel și face referire la același tabel părinte.
Rezultatul se termină cu un scurt rezumat care include o estimare a mărimii totale, în
octeți, pe care îi folosesc indecșii duplicați. Aceasta se calculează prin înmulțirea indicelui
lungime după numărul de rânduri din tabelele lor respective.
OPŢIUNI
Acest instrument acceptă argumente suplimentare de linie de comandă. Consultați „SINOPSIS” și utilizare
informatii pentru detalii.
--toate-structurile
Comparați indici cu diferite structuri (BTREE, HASH, etc).
În mod implicit, acesta este dezactivat, deoarece un index BTREE care acoperă aceleași coloane ca a
Indexul FULLTEXT nu este cu adevărat un duplicat, de exemplu.
--cere-trece
Solicitați o parolă când vă conectați la MySQL.
--charset
forma scurta: -A; tip: sfoară
Set de caractere implicit. Dacă valoarea este utf8, setează binmode al lui Perl pe STDOUT la utf8,
transmite opțiunea mysql_enable_utf8 la DBD::mysql și rulează SET NAMES UTF8 după
conectarea la MySQL. Orice altă valoare setează binmode pe STDOUT fără stratul utf8,
și rulează SET NAMES după conectarea la MySQL.
--[fără]clustered
implicit: da
Coloanele PK atașate la cheia secundară sunt duplicate.
Detectează când un sufix al unei chei secundare este un prefix din stânga cheii primare și
o tratează ca pe o cheie duplicată. Detectează această condiție doar pe motoarele de stocare ale căror
cheile primare sunt grupate (în prezent InnoDB și solidDB).
Motoarele de stocare în cluster atașează coloanele cheii primare la nodurile frunză ale tuturor
cheile secundare oricum, așa că s-ar putea să considerați redundant ca acestea să apară în fișierul
de asemenea nodurile interne. Desigur, s-ar putea să le doriți și în nodurile interne,
pentru că doar a le avea la nodurile frunzei nu va ajuta pentru unele interogări. Ajută
pentru acoperirea interogărilor de index, totuși.
Iată un exemplu de cheie care este considerată redundantă cu această opțiune:
CHEIE PRIMARĂ (`a`)
CHEIE `b` (`b`,`a`)
Utilizarea unor astfel de indici este destul de subtilă. De exemplu, să presupunem că aveți următoarele
interogare:
SELECTAȚI ... UNDE b=1 ORDENAȚI PENTRU a;
Această interogare va face o sortare de fișiere dacă eliminăm indexul pe „b,a”. Dar dacă scurtăm
indexați pe „b,a” la doar „b” și, de asemenea, eliminați ORDER BY, interogarea ar trebui să returneze
aceleasi rezultate.
Instrumentul sugerează scurtarea cheilor grupate duplicat prin scăparea cheii și re-
adăugându-l fără prefixul cheii primare. Cheia grupată scurtată poate încă
duplicați o altă cheie, dar instrumentul nu poate detecta momentan când se întâmplă acest lucru fără
rulat a doua oară pentru a verifica din nou cheile grupate nou scurtate. Prin urmare, dacă
dacă scurtați toate cheile grupate duplicat, ar trebui să rulați din nou instrumentul.
--config
tip: Array
Citiți această listă de fișiere de configurare separate prin virgulă; dacă este specificat, acesta trebuie să fie primul
opțiunea de pe linia de comandă.
--baze de date
forma scurtă: -d; tip: hash
Verificați numai această listă de baze de date separate prin virgulă.
--defaults-file
forma scurtă: -F; tip: sfoară
Citiți numai opțiunile mysql din fișierul dat. Trebuie să dați un nume de cale absolut.
--motoare
forma scurtă: -e; tip: hash
Verificați numai tabelele al căror motor de stocare se află în această listă separată prin virgulă.
--Ajutor
Arată ajutor și ieși.
--gazdă
forma scurtă: -h; tip: sfoară
Conectați-vă la gazdă.
--ignore-baze de date
tip: Hash
Ignorați această listă de baze de date separate prin virgulă.
--ignora-motoare
tip: Hash
Ignorați această listă de motoare de stocare separate prin virgulă.
--ignora-ordine
Ignorați ordinea indexului, astfel încât KEY(a,b) să dubleze KEY(b,a).
--ignora-tabelele
tip: Hash
Ignorați această listă de tabele separate prin virgulă. Numele tabelelor pot fi calificate cu
numele bazei de date.
--tipuri-cheie
tip: sfoară; implicit: fk
Verificați dacă există duplicate f=chei străine, k=chei sau fk=ambele.
--parola
forma scurta: -p; tip: sfoară
Parola de folosit la conectare. Dacă parola conține virgule, acestea trebuie să fie eliminate
cu o bară oblică inversă: „examen\,ple”
--pid
tip: sfoară
Creați fișierul PID dat. Instrumentul nu va porni dacă fișierul PID există deja și
PID-ul pe care îl conține este diferit de PID-ul curent. Cu toate acestea, dacă fișierul PID
există și PID-ul pe care îl conține nu mai rulează, instrumentul va suprascrie PID-ul
fișier cu PID-ul curent. Fișierul PID este eliminat automat când instrumentul iese.
--port
forma scurta: -P; tip: int
Numărul portului de utilizat pentru conexiune.
--set-vars
tip: Array
Setați variabilele MySQL în această listă de perechi „variabilă=valoare”, separate prin virgulă.
În mod implicit, instrumentul setează:
wait_timeout=10000
Variabilele specificate pe linia de comandă înlocuiesc aceste valori implicite. De exemplu,
specificarea „--set-vars wait_timeout=500” înlocuiește valoarea implicită de 10000.
Instrumentul imprimă un avertisment și continuă dacă o variabilă nu poate fi setată.
--priză
forme scurte; tip: sfoară
Fișier socket de utilizat pentru conectare.
--[nu]sql
implicit: da
Tipăriți instrucțiunea DROP KEY pentru fiecare cheie duplicată. În mod prestabilit, o tastă ALTER TABLE DROP
declarația este tipărită sub fiecare cheie duplicată, astfel încât, dacă doriți să eliminați
cheie duplicat, puteți copia și lipi declarația în MySQL.
Pentru a dezactiva imprimarea acestor instrucțiuni, specificați „--no-sql”.
--[fără]rezumat
implicit: da
Imprimați rezumatul indicilor la sfârșitul ieșirii.
--Mese
forma scurtă: -t; tip: hash
Verificați numai această listă de tabele separate prin virgulă.
Numele tabelelor pot fi calificate cu numele bazei de date.
--utilizator
forma scurtă: -u; tip: sfoară
Utilizator pentru autentificare dacă nu este utilizator actual.
--verbos
forma scurtă: -v
Ieșiți toate cheile și/sau cheile străine găsite, nu doar cele redundante.
--versiune
Afișați versiunea și ieșiți.
--[no]verificare-versiune
implicit: da
Verificați cea mai recentă versiune de Percona Toolkit, MySQL și alte programe.
Aceasta este o funcție standard de „verificare automată a actualizărilor”, cu două suplimentare
Caracteristici. În primul rând, instrumentul verifică versiunea altor programe de pe sistemul local în
în plus față de propria sa versiune. De exemplu, verifică versiunea fiecărui server MySQL
se conectează la, Perl și modulul Perl DBD::mysql. În al doilea rând, verifică și avertizează
despre versiunile cu probleme cunoscute. De exemplu, MySQL 5.5.25 a avut o eroare critică și
a fost relansat ca 5.5.25a.
Orice actualizări sau probleme cunoscute sunt tipărite în STDOUT înainte de ieşirea normală a instrumentului.
Această caracteristică nu ar trebui să interfereze niciodată cu funcționarea normală a instrumentului.
Pentru mai multe informații, vizitați .
dsn OPŢIUNI
Aceste opțiuni DSN sunt folosite pentru a crea un DSN. Fiecare opțiune este dată ca „opțiune=valoare”.
Opțiunile sunt sensibile la majuscule, așa că P și p nu sunt aceeași opțiune. Nu poate exista
spații albe înainte sau după „=" și dacă valoarea conține spații albe, aceasta trebuie citată.
Opțiunile DSN sunt separate prin virgulă. Consultați pagina de manual percona-toolkit pentru detalii complete.
· ARE
dsn: set de caractere; copie: da
Set de caractere implicit.
· D
dsn: baza de date; copie: da
Baza de date implicită.
F
dsn: mysql_read_default_file; copie: da
Citiți numai opțiunile implicite din fișierul dat
· H
dsn: gazdă; copie: da
Conectați-vă la gazdă.
· p
dsn: parola; copie: da
Parola de folosit la conectare. Dacă parola conține virgule, acestea trebuie să fie eliminate
cu o bară oblică inversă: „examen\,ple”
· P
dsn: port; copie: da
Numărul portului de utilizat pentru conexiune.
· S
dsn: mysql_socket; copie: da
Fișier socket de utilizat pentru conectare.
· u
dsn: utilizator; copie: da
Utilizator pentru autentificare dacă nu este utilizator actual.
MEDIUL
Variabila de mediu „PTDEBUG” permite ieșirea depanării detaliate către STDERR. Pentru a permite
depanarea și capturarea tuturor rezultatelor într-un fișier, rulați instrumentul ca:
PTDEBUG=1 pt-duplicate-key-checker ... > FILE 2>&1
Fiți atenți: ieșirea de depanare este voluminoasă și poate genera câțiva megaocteți de ieșire.
SISTEM CERINȚE
Aveți nevoie de Perl, DBI, DBD::mysql și de câteva pachete de bază care ar trebui să fie instalate în orice
o versiune relativ nouă de Perl.
Utilizați pt-duplicate-key-checkerp online folosind serviciile onworks.net