
Birden fazla veritabani kullaniyorsaniz, yada sunucuda bir cok kullaniciya hizmet eden mysql server kullaniyorsaniz haftada yada ayda bir veritabanlarinin optimize, onarma islemlerini yapmaniz gerekir. Cunku yapilan sorgular bzen veritabaninda gereksiz kirintilarin birikmesine yada listeleme siralarinin degismesine sebep olabilir. bu gibi durumlarda onarmak ve optimiez etmek gerek. Sonuc olarak gozle gorulur bir rahatlama ve hizlanma olusacaktir.
Ben burda isinize yarayacak birden fazla yontemden bahsedecegim, toplu yada tek tek gibi islemlerde ihtiyaciniz olan sadece size uygun olanlari kullanmak olacaktir.
Butun veritabanlarini onarmak ve optimize etmek
Asagidaki kodu ben devamli kullaniyorum. Tek bir kod ile hem veritabanlarini optimize hemde onarma islemini gerceklestiriyorum. Kodu ssh de yapistirip onayladiktan sonra mysql giris sifresi isteyecek yazip enter dediginizde mysql de bulunan butun vertabani tablolarini onaracak, optimize edecek.
Not: Eger mysql sifreniz yoksa buyuk ihtimal sunucu giris sifresi ile aynidir. Sifre sormama ihtimalide var eger yoksa :)
mysqlcheck -uroot -p --auto-repair --optimize --all-databases
Yukaridaki islemlerde hem onarma hemde tamir etme yapiyor. bunlari ayri ayri yapmak isterseniz asagidakilerden birini kullanabilirsiniz.
Butun veritabanlarini Onarmak, Tamir etmek
mysqlcheck -u root -p --auto-repair --all-databases
Butun veritabanlarini Optimize etmek
mysqlcheck -u root -p --optimize --all-databases
Bazi durumlarda butun veritabanlari yerine sadece bir veritabanini onarmak ve optimize etmek isteyebilirsiniz. O zamanda asagidakiler sizin yardiminiza kosar.
Sadece bir veritabanini Onarmak ve optimize etmek
mysqlcheck -u root -p --auto-repair --optimize [database-ismi]
Yukaridaki kodda goreceginiz [database-ismi] yerine onarmak ve tamir etmek istediginiz veritabaninin ismini yazmaniz gerekli.
Sadece bir veritabanini onarmak
mysqlcheck -u root -p --auto-repair [database-ismi]
Sadece bir veritabanini optimize etmek
mysqlcheck -u root -p --optimize [database-ismi]
Asagidaki verecegim orneklerde de sifreye gerek kalmadan kullanabileceginiz kodlari iceriyor. Ancak asagidaki kodlar ise yaramaz ve hata verirse yukaridakileri kullanmaniz gerekecek. Genelde ayri bir sunucuda barindirilan mysql serverlarda localhost sifresiz erisimi devredisi birakiliyor, bu yuzden de asagidakiler ise yaramiyor, yukardakileri kullanmaniz gerekiyor. Ancak localhost ise mysql veritabanlariniz asagidaki kestirmeleri kullanabilirsiniz..
Butun veritabani tablolarini onarmak, tamir etmek
mysqlcheck --repair -A
Butun veritabani tablolarini optimize etmek
mysqlcheck --optimize -A
Asagidakilerde ise yarayabilir. # isareti aciklama icin kullanilmistir, sadece altindaki kod yapisini ssh terminalinden yazmaniz ve gondermeniz gerek.
# Onarma - Butun tablolari mysqlcheck --all-databases -r # Analiz - Butun tablolari mysqlcheck --all-databases -a # Optimize - Butun tablolari mysqlcheck --all-databases -o
İşe yaramadı. -bash: mysqlcheck: command not found
Tam olarak girdiginiz kodu yazarmisiniz, yanlis girmis olabilirsiniz yada mysql kurulu egil sistemde, farkli bir sunucuda kurulu olmadigindan emin olun :)