BiSoft Logo

Hizmetler

Ürünler

Ortaklık

Blog

Turkish

Genel

MySQL Alter Table

MySQL veri tabanlarında, özellikle büyük tablolarla uğraşırken, yapısal değişiklikler bazen DBA’ların başını ağrıtabilir. Bu yazımızda ALTER TABLE işlemleri sırasında oluşabilecek sorunları, nedenlerini ve çözümlerini inceleyeceğiz.

MySQL’de ALTER TABLE ifadesi, mevcut bir tablonun yapısını değiştirmeye olanak tanır.

ALGORITHM ifadesi, MySQL’in değişikliği nasıl gerçekleştireceğini belirtir. ALGORITHM için üç olası değer vardır:

ALGORITHM = INPLACE

Tablonun bir kopyasını oluşturmadan, değişikliği mevcut veri dosyası üzerinde gerçekleştirir.

Kullanım alanları:
Index ekleme veya düşürme, kolon adı değiştirme, kolon veri tiplerini değiştirme, partition tablolara yeni partition ekleme veya düşürme, partition COALESCE veya REORGANIZE işlemleri.

Performans:
Tablonun kopyasını oluşturmadığı için daha hızlıdır ve ekstra disk alanı gerektirmez; bu durum büyük tablolar için büyük avantaj sağlar. Ayrıca, ikinci bir tablo kopyası yazılmadığı için DML işlemleri (INSERT, UPDATE, DELETE) süreç boyunca devam edebilir.

Ancak INPLACE işlemleri sırasında oluşabilecek çökme durumları dosya bozulmasına sebep olabilir, bu risk göz ardı edilmemelidir.

Örnek:

ALTER TABLE my_table ADD INDEX idx_name (name)
ALTER TABLE my_table ADD INDEX idx_name (name)
ALTER TABLE my_table ADD INDEX idx_name (name)

ALGORITHM = COPY

Bu algoritma, tablonun geçici bir kopyasını oluşturur ve değişiklikleri o kopya üzerinde uygular. Bu süre boyunca tablo üzerinde DML işlemleri yapılamaz.
İşlem tamamlandığında, MySQL orijinal tabloyu değiştirilmiş kopya ile değiştirir ve eski tabloyu siler.

Bu yöntem, daha uzun ve karmaşık işlemler için tercih edilir; örneğin primary key değişiklikleri, STORED kolon eklemek veya kolon sırasını değiştirmek gibi tablonun tamamen yeniden yazılması gereken durumlar.

Tablonun bir kopyası yazıldığı için işlem daha uzun sürer ve tablo boyutu kadar ekstra disk alanı kullanır.
Ancak orijinal tablo, işlem tamamlanana kadar değişmediği için çökme durumlarında daha güvenlidir.

Örnek:

ALTER TABLE my_table ADD COLUMN
ALTER TABLE my_table ADD COLUMN
ALTER TABLE my_table ADD COLUMN

Büyük tablolar için COPY algoritması ile ALTER işlemleri yavaş olabilir.
Kesintinin tolere edilemeyeceği sistemlerde, pt-online-schema-change kullanılması önerilir.

ALGORITHM = DEFAULT

Bu seçenek, MySQL’in kendisi için en uygun algoritmayı (INPLACE veya COPY) seçmesini sağlar.
Hangi algoritmayı kullanacağınızdan emin değilseniz, seçimi MySQL’e bırakmak genellikle daha güvenli bir tercihtir.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

250'den fazla müşterimize katılın

İster uzman danışmanlık, ister özel yazılım, ister kapsamlı veri çözümleri arıyor olun, BiSoft yanınızda. Hedeflerinize nasıl katkı sağlayabileceğimizi konuşalım.

İş büyümesi ve verimliliği için akıllı veri çözümleri

Şirket

Hizmetler

Ürün

Vispeahen

BFM

BFM4Patroni

Daha fazla içerik