Ini adalah perintah pt-duplicate-key-checkerp yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
pt-duplicate-key-checker - Temukan indeks duplikat dan kunci asing di tabel MySQL.
RINGKASAN
Penggunaan: pt-duplicate-key-checker [OPSI] [DSN]
pt-duplicate-key-checker memeriksa tabel MySQL untuk indeks duplikat atau redundan dan
kunci asing. Opsi koneksi dibaca dari file opsi MySQL.
pt-duplikat-kunci-pemeriksa --Host host1
RISIKO
Percona Toolkit sudah matang, terbukti di dunia nyata, dan teruji dengan baik, tetapi semua basis data
alat dapat menimbulkan risiko bagi sistem dan server database. Sebelum menggunakan alat ini,
mohon untuk:
· Baca dokumentasi alat ini
· Tinjau "BUGS" alat yang dikenal
· Uji alat di server non-produksi
· Cadangkan server produksi Anda dan verifikasi cadangannya
DESKRIPSI
Program ini memeriksa output dari SHOW CREATE TABLE pada tabel MySQL, dan jika ditemukan:
indeks yang menutupi kolom yang sama dengan indeks lain dalam urutan yang sama, atau mencakup tepat
awalan paling kiri dari indeks lain, ia mencetak indeks yang mencurigakan. Secara default,
indeks harus dari jenis yang sama, jadi indeks BTREE bukan duplikat dari indeks FULLTEXT,
bahkan jika mereka memiliki kolom yang sama. Anda dapat menimpa ini.
Itu juga mencari kunci asing duplikat. Kunci asing duplikat mencakup kolom yang sama
sebagai yang lain dalam tabel yang sama, dan mereferensikan tabel induk yang sama.
Keluaran diakhiri dengan ringkasan singkat yang mencakup perkiraan ukuran total, dalam
byte, yang digunakan indeks duplikat. Ini dihitung dengan mengalikan indeks
panjang dengan jumlah baris dalam tabel masing-masing.
PILIHAN
Alat ini menerima argumen baris perintah tambahan. Lihat "SINOPSIS" dan penggunaan
informasi untuk rincian.
--semua-struktur
Bandingkan indeks dengan struct yang berbeda (BTREE, HASH, dll).
Secara default ini dinonaktifkan, karena indeks BTREE yang mencakup kolom yang sama dengan a
Indeks FULLTEXT sebenarnya bukan duplikat, misalnya.
--ask-lulus
Meminta kata sandi saat menghubungkan ke MySQL.
--rangkaian karakter
bentuk pendek: -A; jenis: string
Kumpulan karakter default. Jika nilainya utf8, setel binmode Perl di STDOUT ke utf8,
meneruskan opsi mysql_enable_utf8 ke DBD::mysql, dan menjalankan SET NAMES UTF8 setelahnya
menghubungkan ke MySQL. Nilai lain apa pun menetapkan binmode pada STDOUT tanpa lapisan utf8,
dan menjalankan SET NAMES setelah terhubung ke MySQL.
--[tidak]berkelompok
default: ya
Kolom PK yang ditambahkan ke kunci sekunder adalah duplikat.
Mendeteksi ketika sufiks dari kunci sekunder adalah awalan paling kiri dari kunci utama, dan
memperlakukannya sebagai kunci duplikat. Hanya mendeteksi kondisi ini pada mesin penyimpanan yang
kunci utama dikelompokkan (saat ini InnoDB dan solidDB).
Mesin penyimpanan berkerumun menambahkan kolom kunci utama ke simpul daun semua
kunci sekunder, jadi Anda mungkin menganggapnya berlebihan untuk memunculkannya di
node internal juga. Tentu saja, Anda mungkin juga menginginkannya di node internal,
karena hanya memilikinya di simpul daun tidak akan membantu untuk beberapa pertanyaan. Itu membantu
untuk menutupi kueri indeks, namun.
Berikut adalah contoh kunci yang dianggap berlebihan dengan opsi ini:
KUNCI UTAMA (`a`)
KUNCI `b` (`b`,`a`)
Penggunaan indeks semacam itu agak halus. Misalnya, Anda memiliki yang berikut ini:
pertanyaan:
PILIH ... DI MANA b=1 ORDER OLEH a;
Query ini akan melakukan filesort jika kita menghapus indeks pada "b,a". Tetapi jika kita mempersingkat
indeks pada "b,a" menjadi hanya "b" dan juga menghapus ORDER BY, kueri harus mengembalikan
hasil yang sama.
Alat ini menyarankan untuk memperpendek duplikat kunci berkerumun dengan menjatuhkan kunci dan re-
menambahkannya tanpa awalan kunci utama. Kunci berkerumun yang dipersingkat mungkin masih
duplikat kunci lain, tetapi alat saat ini tidak dapat mendeteksi ketika ini terjadi tanpa
dijalankan untuk kedua kalinya untuk memeriksa kembali kunci berkerumun yang baru dipersingkat. Oleh karena itu, jika
Anda mempersingkat semua kunci berkerumun duplikat, Anda harus menjalankan alat lagi.
--konfigurasi
jenis: Array
Baca daftar file konfigurasi yang dipisahkan koma ini; jika ditentukan, ini harus menjadi yang pertama
pilihan pada baris perintah.
--database
bentuk pendek: -d; jenis: hash
Periksa hanya daftar database yang dipisahkan koma ini.
--default-file
bentuk pendek: -F; jenis: string
Hanya baca opsi mysql dari file yang diberikan. Anda harus memberikan nama path absolut.
--mesin
bentuk pendek: -e; jenis: hash
Periksa hanya tabel yang mesin penyimpanannya ada dalam daftar yang dipisahkan koma ini.
--membantu
Tunjukkan bantuan dan keluar.
--tuan rumah
bentuk pendek: -h; jenis: string
Hubungkan ke tuan rumah.
--abaikan-database
jenis: Hash
Abaikan daftar database yang dipisahkan koma ini.
--abaikan-mesin
jenis: Hash
Abaikan daftar mesin penyimpanan yang dipisahkan koma ini.
--abaikan-pesanan
Abaikan urutan indeks sehingga KEY(a,b) menduplikasi KEY(b,a).
--ignore-tabel
jenis: Hash
Abaikan daftar tabel yang dipisahkan koma ini. Nama tabel mungkin memenuhi syarat dengan
nama basis data.
--tipe-kunci
jenis: tali; default: fk
Periksa duplikat f=kunci asing, k=kunci atau fk=keduanya.
--kata sandi
bentuk pendek: -p; jenis: string
Kata sandi untuk digunakan saat menghubungkan. Jika kata sandi mengandung koma, mereka harus diloloskan
dengan garis miring terbalik: "ujian\,ple"
--pid
jenis: string
Buat file PID yang diberikan. Alat tidak akan mulai jika file PID sudah ada dan
PID yang dikandungnya berbeda dari PID saat ini. Namun, jika file PID
ada dan PID yang dikandungnya tidak lagi berjalan, alat akan menimpa PID
file dengan PID saat ini. File PID dihapus secara otomatis saat alat keluar.
--Pelabuhan
bentuk pendek: -P; jenis: int
Nomor port yang digunakan untuk koneksi.
--set-vars
jenis: Array
Setel variabel MySQL dalam daftar pasangan "variabel=nilai" yang dipisahkan koma ini.
Secara default, set alat:
tunggu_waktu habis=10000
Variabel yang ditentukan pada baris perintah menggantikan default ini. Sebagai contoh,
menentukan "--set-vars wait_timeout=500" mengesampingkan nilai default 10000.
Alat ini mencetak peringatan dan melanjutkan jika variabel tidak dapat disetel.
--stopkontak
Surat pendek; jenis: string
File soket yang akan digunakan untuk koneksi.
--[tidak]sql
default: ya
Cetak pernyataan DROP KEY untuk setiap kunci duplikat. Secara default ALTER TABLE DROP KEY
pernyataan dicetak di bawah setiap kunci duplikat sehingga, jika Anda ingin menghapus
duplikat kunci, Anda dapat menyalin-tempel pernyataan ke MySQL.
Untuk menonaktifkan pencetakan pernyataan ini, tentukan "--no-sql".
--[tidak]ringkasan
default: ya
Cetak ringkasan indeks di akhir keluaran.
--tabel
bentuk pendek: -t; jenis: hash
Periksa hanya daftar tabel yang dipisahkan koma ini.
Nama tabel mungkin dikualifikasikan dengan nama database.
--pengguna
bentuk pendek: -u; jenis: string
Pengguna untuk login jika bukan pengguna saat ini.
--bertele-tele
bentuk pendek: -v
Keluarkan semua kunci dan/atau kunci asing yang ditemukan, bukan hanya yang berlebihan.
--Versi: kapan
Tampilkan versi dan keluar.
--[no]versi-periksa
default: ya
Periksa versi terbaru Percona Toolkit, MySQL, dan program lainnya.
Ini adalah fitur standar "periksa pembaruan secara otomatis", dengan dua tambahan
fitur. Pertama, alat ini memeriksa versi program lain di sistem lokal di
tambahan untuk versinya sendiri. Misalnya, ia memeriksa versi setiap server MySQL
itu terhubung ke, Perl, dan modul Perl DBD::mysql. Kedua, ia memeriksa dan memperingatkan
tentang versi dengan masalah yang diketahui. Misalnya, MySQL 5.5.25 memiliki bug kritis dan
dirilis ulang sebagai 5.5.25a.
Setiap pembaruan atau masalah yang diketahui dicetak ke STDOUT sebelum keluaran normal alat.
Fitur ini tidak boleh mengganggu pengoperasian normal alat.
Untuk informasi lebih lanjut, kunjungi .
DSN PILIHAN
Opsi DSN ini digunakan untuk membuat DSN. Setiap opsi diberikan seperti "opsi = nilai".
Opsi peka huruf besar/kecil, jadi P dan p bukan opsi yang sama. Tidak mungkin ada
spasi putih sebelum atau sesudah "=" dan jika nilainya mengandung spasi, itu harus dikutip.
Opsi DSN dipisahkan dengan koma. Lihat halaman manual percona-toolkit untuk detail lengkap.
· SEBUAH
dsn: rangkaian karakter; salinan: ya
Kumpulan karakter default.
· D
dsn: basis data; salinan: ya
Basis data bawaan.
· F
dsn: mysql_read_default_file; salinan: ya
Hanya baca opsi default dari file yang diberikan
· H
dsn: tuan rumah; salinan: ya
Hubungkan ke tuan rumah.
· P
dsn: kata sandi; salinan: ya
Kata sandi untuk digunakan saat menghubungkan. Jika kata sandi mengandung koma, mereka harus diloloskan
dengan garis miring terbalik: "ujian\,ple"
· P
dsn: pelabuhan; salinan: ya
Nomor port yang digunakan untuk koneksi.
· S
dsn: mysql_socket; salinan: ya
File soket yang akan digunakan untuk koneksi.
· kamu
dsn: pengguna; salinan: ya
Pengguna untuk login jika bukan pengguna saat ini.
LINGKUNGAN
Variabel lingkungan "PTDEBUG" memungkinkan keluaran debugging verbose ke STDERR. Untuk mengaktifkan
debugging dan tangkap semua output ke file, jalankan alat seperti:
PTDEBUG=1 pt-duplicate-key-checker ... > FILE 2>&1
Hati-hati: keluaran debug sangat banyak dan dapat menghasilkan beberapa megabita keluaran.
SISTEM PERSYARATAN
Anda memerlukan Perl, DBI, DBD::mysql, dan beberapa paket inti yang harus diinstal di
versi Perl yang cukup baru.
Gunakan pt-duplicate-key-checkerp online menggunakan layanan onworks.net