MySQL veritabanında INSERT, UPDATE ve DELETE deyimleri sıkça çalıştırıldığında veriler disk üzerinde sürekli bir şekilde depolanmaz ve tablespace parçaları oluşur. Bu parçalar veritabanı performansını düşürür. Tablespace parçalarını geri kazanmak için OPTIMIZE TABLE deyimi gibi standart işlemler uygulandığında tablolar kilitlenebilir ve bu durum iş süreçlerinizi etkileyebilir. Data Management (DMS) hizmetinin kilitsiz şema değişikliği özelliği, veritabanı değişikliği sırasında tabloların kilitlenmesinin iş süreçlerinizi etkilemesini önlerken tablespace parçalarını otomatik olarak geri kazanır. Bu sayede veritabanı performansı ve verimliliği artar, depolama maliyetleri azalır. Bu konuda, DMS'te tablespace parçalarını otomatik olarak geri kazanmak için nasıl kilitsiz şema değişikliği bileti oluşturulacağı açıklanmaktadır.
Ön koşullar
Alan birleştirme işlemi uygulamak istediğiniz veritabanındaki tabloları değiştirme izniniz bulunmaktadır. Daha fazla bilgi için bkz. İzinlerinizi görüntüleyin ve İzinleri yönetin.
MySQL veritabanı örneğinde kilitsiz şema değişikliği özelliği etkinleştirilmiştir. Daha fazla bilgi için bkz. Kilitsiz şema değişikliğini etkinleştirin.
Kullanım notları
Büyük bir tablodan tablespace parçalarını geri kazanırken, örnekteki kullanılabilir depolama alanının hedef tablo boyutunun en az iki ila üç katı olduğundan emin olun. İşlem sırasında örnek üzerindeki kullanılabilir depolama alanını yakından izleyin.
Büyük bir tablodaki tablespace parçalarını geri kazanırken, verileri geçici olarak saklamak için bir kopyaya ihtiyaç duyulabilir ve bu durum ek depolama alanı kaplar. Veritabanı örneğindeki kalan depolama alanı yetersizse DMS, tablespace parçalarını geri kazanamayabilir veya veritabanı örneği kilitlenebilir.
DMS, tabloları kilitlemeden şemaları değiştirmek için DDL deyimlerini çalıştırarak tablespace parçalarını geri kazanır. Deyimlerin çalıştırılma başarı oranının %100'e ulaşamayabileceğini unutmayın.
Tablespace parçalarının boyutunu görüntüleme
Tablespace parçalarının boyutunu, DMS'in SQL Konsolu'nda aşağıdaki SQL deyimi çalıştırarak kontrol edebilirsiniz: SHOW TABLE STATUS LIKE 'table_name';. SQL Konsolu'nun kullanımıyla ilgili ayrıntılı talimatlar için bkz. SQL Konsolu.
Sorgu sonuçlarında, Data_free sütunu tablodaki parçalı alan miktarını bayt cinsinden gösterir.
Yordam
DMS 5.0 konsoluna giriş yapın.
-
Üst gezinme çubuğunda Database Development > Data Change > Lock-free Change seçeneklerini seçin.
NotDMS konsolunu basit modda kullanıyorsanız sol üst köşedeki
simgesine tıklayın ve yolunu izleyin. -
Kilitsiz şema değişikliği biletini yapılandırın. Daha fazla bilgi için bkz. Kilitsiz değişiklik biletleri kullanarak kilitsiz şema değişiklikleri gerçekleştirin.
Bir örnek için kilitsiz şema değişikliği özelliğini etkinleştirdikten sonra gönderdiğiniz her kilitsiz şema değişikliği bileti tablespace parçalarını otomatik olarak geri kazanır. Ancak, daha kararlı bir geri kazanım işlemi sağlamak ve ilgili tablolar üzerindeki etkiyi en aza indirmek için biletinizde tabloyu açıkça yeniden düzenlemek amacıyla aşağıdaki SQL deyimlerinden birini kullanmanızı öneririz:
OPTIMIZE TABLE table_name;ALTER TABLE table_name COMMENT 'The new comment for the table';ALTER TABLE table_name ENGINE=InnoDB;-
ALTER TABLE table_name MODIFY COLUMN field_name INT COMMENT 'The new comment for the field';NotBu SQL deyimleri alan geri kazansa da DMS'teki kilitsiz işlem (
OPTIMIZE TABLEdahil), yerelOPTIMIZE TABLEkomutu kadar kapsamlı olmayabilir.