Daha iyi performans için tabloları birleştirmek üzere OPTIMIZE TABLOSU'nu çalıştırın


12

Linux 64-Bit işletim sistemi kullanıyorum. MySQL tuner aşağıdaki şeyleri söylüyor:

-------- Genel istatistikler ---------------------------------------- ----------
[-] MySQLTuner komut dosyası için sürüm denetimi atlandı
[OK] Şu anda desteklenen MySQL sürüm 5.1.61 günlüğü çalışıyor
[OK] 64 bit mimaride çalışıyor

-------- Depolama Motoru İstatistikleri --------------------------------------- ----
[-] Durum: -Archive -BDB -Federated + InnoDB -ISAM -NDBCluster
[-] MyISAM tablolarındaki veriler: 1G (Tablolar: 1914)
[-] InnoDB tablolarındaki veriler: 4M (Tablolar: 199)
[!!] Toplam parçalanmış tablolar: 296

-------- Güvenlik Önerileri ---------------------------------------- ---
[OK] Tüm veritabanı kullanıcılarına atanmış şifreler var

-------- Performans Metrikleri ---------------------------------------- ---------
[-] Şunlar için: 6s (7K q [1K qps], 142 bağlantı, TX: 8M, RX: 701K)
[-] Okuma / Yazma:% 97 /% 3
[-] Toplam arabelleğe alma: Diş başına 1,7G global + 13,2M (maksimum 384 iş parçacığı)
[OK] Olası maksimum bellek kullanımı: 6.6G (kurulu RAM'in% 42'si)
[OK] Yavaş sorgular:% 0 (0 / 7K)
[OK] Kullanılabilir bağlantıların en yüksek kullanımı:% 5 (20/384)
[OK] Anahtar arabellek boyutu / toplam MyISAM dizinleri: 1.5G / 2.7G
[OK] Anahtar arabellek isabet oranı:% 97,4 (553K önbellek / 14K okuma)
[OK] Sorgu önbellek verimliliği:% 64,6 (4K önbellek / 6K seçer)
[OK] Günlük önbellek kuru eriklerini sorgula: 0
[OK] Geçici tablolar gerektiren sıralamalar:% 0 (2 geçici sıralama / 337 sıralama)
[OK] Diskte geçici tablolar oluşturuldu:% 8 (diskte 17 / toplam 198)
[OK] İş parçacığı önbellek isabet oranı:% 85 (20 oluşturulan / 142 bağlantı)
[OK] Tablo önbellek isabet oranı:% 98 (438 açık / 445 açık)
[OK] Kullanılan açık dosya limiti:% 10 (856 / 8K)
[OK] Tablo kilitleri hemen alındı:% 99 (2K acil / 2K kilit)
[OK] InnoDB veri boyutu / tampon havuzu: 4.2M / 8.0M


-------- Öneriler ----------------------------------------- ------------
Genel öneriler:
    Daha iyi performans için tabloları birleştirmek üzere OPTIMIZE TABLOSU'nu çalıştırın
    MySQL son 24 saat içinde başladı - öneriler yanlış olabilir

Onların önerileri OPTIMIZE TABLEdaha iyi performans için tabloları birleştirmek; Ama onu Putty ile nasıl çalıştıracağımı bilmiyorum.

Bana kodu Putty ile nasıl çalıştırabilir verebilir kimse var mı?

Yanıtlar:


7

OPTIMIZE TABLE bir SQL ifadesidir - bir MySQL istemcisinde çalıştırın.

Sunucunun komut satırında, komut satırı istemcisinin yüklü olması gerekir; ile istemcideki veritabanınıza bağlanabilirsiniz mysql -u username -p.

Daha fazla bilgi için üzerindeki belgelereOPTIMIZE TABLE bakın .


Bu site profesyonel sistem yöneticileri tarafından sorulan sorular hakkındadır.
gparent

@gparent - uhh bu soruya yönelikti, Shane'nin mükemmel geçerli cevabı değil miydi?
Mark Henderson

2
@gparent Sağ - ama bir SQL profesyonelini gördüklerinde bilmeye dayanarak birinin profesyonelliğini yargılamanın adil olduğunu düşünmüyorum. Araştırma çabucak cevabı ortaya çıkarırdı, ama .. Bu topluluğun soruları "açık" olduğu için geri çevirdiği fikrinden hoşlanmıyorum.
Shane Madden

Haklısın, yorumum buraya ait değil, sanırım yazar Shane'nin sorusuna bir yorum gönderdi ve sonra onu kaldırdı, ya da gerçekten Barkat'ın sorusuna göndermek istedim, ancak genellikle daha fazla bilgi eklersem durum böyleydi.
gparent

1
Sana katılmıyorum, çizgiyi çizmen gereken bir yer var. Şu anda MySQL veritabanları ile çalışan ve bunları optimize etmeye çalışan bir profesyonelin (SSS: profesyonel bir kapasitede) söylemek terimin google'ı ve ilk arama sonucundan bir MySQL sorgusu olduğunu anlamaya yetecek kadar yeterli olduğunu söylemek adil olur. Belki herhangi bir çalışanda çok fazla şey bekliyorum ..
gparent

18

mysqlcheck -u username -p --auto-repair --optimize --all-databasesTerminalde de deneyebilirsiniz .

"Tablo optimize" çalıştırarak MySQL böyle başlatabilir mysql -u username -pve oradan komutları çalıştırabilirsiniz. Genellikle kullandığım ilk komut, show databases;ancak önce bir MySQL öğreticisi bulmalısınız. Google'da ilk gelen: http://downloads.mysql.com/docs/mysql-tutorial-excerpt-5.1-en.pdf

Macun kullanıp kullanmadığınız önemli değildir. "Putty ile" yerine "komut satırından" demek isteyebilirsiniz.


2
Bu, kabul edilenden çok daha iyi bir çözümdür. Komutları çalıştırmadan önce tüm veritabanlarını ve tabloları numaralandırmaya ve ayrıca otomatik onarmaya gerek yoktur.
Sammitch

1
Ayrıca bunlardan herhangi birini çalıştırmadan önce kendinize bir iyilik yapın ve bir veritabanı yedeklemesi yapın. mysqldump -u username -p dbname > dbname.sqlve gzip dbname.sqlgüzelce yapmalı.
Fiasco Labs

Fiasco, en azından centos'ta, komut şu şekilde olmalıdırmysqldump -u username -p db_name > dbname.sql
yitwail
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.