OPTİMİZE TABLOSUNUN birleştirme yapmadığını lütfen unutmayın . Dahili olarak, OPTIMIZE TABLE birkaç işlem gerçekleştirir (verileri geçici bir dosyaya kopyalama, dizinleri yeniden oluşturma, dizin istatistiklerini yeniden hesaplama). Aslında, sahip olduğum örnek gösterildiği gibi manuel olarak gerçekleştirilebilir.
Örnek: Optimize mydb.mytableederseniz şu komutu girersiniz:
OPTIMIZE TABLE mydb.mytable;
MySQL'in aşağıdaki başlık altında bir şey yaptığını unutmayın:
CREATE TABLE mydb.mytable2 LIKE mydb.mytable;
ALTER TABLE mydb.mytable2 DISABLE KEYS;
INSERT INTO mydb.mytable2 SELECT * FROM mydb.mytable;
ALTER TABLE mydb.mytable2 ENABLE KEYS;
DROP TABLE mydb.mytable;
ALTER TABLE mydb.mytable2 RENAME mydb.mytable;
ANALYZE TABLE mydb.mytable;
Bu, yüksek düzeyde UPDATE ve DELETE alan tablolar için oldukça kullanışlıdır
Bunu yapmak iki şeyi başarabilir
MySQL'in veriyi doğru boyutlu parçalara yüklemek için bir tablodaki parçalara bakmasını önleyin. Bu parçaların ortadan kaldırılması bu işlemi azaltacaktır.
Dizin istatistiklerinin yeniden hesaplanması MySQL Sorgu Optimize Edici'nin daha iyi EXPLAIN planları oluşturmasına yardımcı olur. Aksi takdirde, MySQL Sorgu Optimize Edici EXPLAIN planında kötü tahminler yapmaya karar verdiğinden, sorgular yürütme zamanında bozulabilir. Bu, yüksek bir UPDATE ve DELETE hacmine sahip bir tablonun kesin bir belirtisi olacaktır.
UYARI
Önbellekleme ile ilgili olarak, önbellekleme, tam tablo taraması yapması nedeniyle hızlı bir şekilde dalış yapar. MyISAM dizin sayfaları için MyISAM Anahtar Önbelleği'ne girip çıkın. InnoDB için, veri ve dizin sayfaları InnoDB Arabellek Havuzu'na girip çıkar.