Eksi bakiye Soru sordu
7 ay önce

MySQL’de bir tablonun içeriğini boşaltmak için DELETE veya TRUNCATE ifadesi kullanılabilir. Ancak, bu iki ifade arasında önemli bir fark vardır.

DELETE ile Boşaltma:

DELETE FROM table_name;

Bu ifade, belirtilen tablodaki tüm satırları siler, ancak tablonun yapısını değiştirmez. Dolayısıyla, DELETE ifadesi kullanıldığında tablonun tüm verileri silinir, ancak tablonun sütunları, indeksleri ve kısıtlamaları değişmez.

TRUNCATE ile Boşaltma:

TRUNCATE TABLE table_name;

Bu ifade, belirtilen tablodaki tüm satırları hızlı bir şekilde siler ve tablonun yapısını değiştirmez. TRUNCATE ifadesi, DELETE ifadesinden daha hızlı çalışır ve tabloyu boşaltmak için genellikle tercih edilir. Ancak, TRUNCATE ifadesi kullanıldığında, tablonun sütunları, indeksleri ve kısıtlamaları değişmez.

Kısaca, bir MySQL tablosunun içeriğini boşaltmak için DELETE veya TRUNCATE ifadeleri kullanılabilir. DELETE ifadesi, satırları tek tek silerek çalışırken, TRUNCATE ifadesi tabloyu hızlı bir şekilde boşaltır. Hangi ifadenin kullanılacağı, tablonun yapısı ve ihtiyacınıza bağlı olarak değişebilir.

senin yardımını bekliyor. Cevapla
Mintik'e katıl

"Giriş yaparak Mintik'in Hizmet Şartlarını kabul ettiğinizi ve Gizlilik Politikasının geçerli olduğunu onayladığınızı kabul etmiş olursunuz."

3 cevap

  1. Tablo içindeki tüm veriyi boşaltmak için en doğru ve en verimli yöntem tartışmasız TRUNCATE TABLE komutudur.

    Yazımı şöyle:TRUNCATE TABLE tablo_ismi;

    Neden bu kadar önemli bu komut?

    Öncelikle hız. Normal bir DELETE FROM tablo_ismi komutu, her bir satırı teker teker siler ve bu silme işlemini işlem günlüğüne (transaction log) kaydeder. Büyük tablolarda bu çok zaman alır. TRUNCATE ise tablonun veri dosyalarını direkt olarak sıfırlar, bu yüzden saniyeler içinde biter.

    İkincisi, sıfırlama. Eğer tablonun otomatik artan (auto-increment) bir ID sütunu varsa, TRUNCATE bu sayacı da otomatik olarak sıfırlar. Yani ilk ekleyeceğin kayıt tekrar ID=1 olur. DELETE komutu kullanırsan, sayaç kaldığı yerden devam ederdi.

    Tek dikkat etmen gereken, TRUNCATE’in geri alınamaz (non-rollbackable) bir işlem olmasıdır. Yani yanlışlıkla yaparsan geçmiş olsun. O yüzden kullanmadan önce emin ol. Ama amacın tablo içini tamamen boşaltıp temizlemekse, en iyi komut budur.

  2. Ya bu çok basit bir işlem aslında. Eğer tablonun tamamını boşaltmak istiyorsan ve baştan başlamak niyetindeysen kullanacağın komut kesinlikle TRUNCATE TABLE komutudur.

    Şöyle yazacaksın:

    TRUNCATE TABLE tablo_adı;

    Bu komut, DELETE FROM komutundan çok daha hızlıdır. Çünkü her satırı tek tek silmek yerine, tablonun tüm yapısını koruyarak içindeki veriyi ve ayrılan alanı hızlıca sıfırlar. Ayrıca, auto-increment (otomatik artan) sütun varsa, onu da sıfırlayıp baştan 1’den başlatır. Eğer silme işleminin geri alınabilir olmasını istiyorsan veya sadece birkaç satırı silmek istiyorsan, o zaman DELETE FROM kullanman gerekir ama sen tüm tabloyu boşaltmak istediğini söylemişsin, o yüzden TRUNCATE en iyisi.

  3. İki yolu var bu işin, duruma göre değişir.

    1. Hızlı Yol (Önerilen): TRUNCATE TABLE tablo_adı; Bu komut, tablonun içindeki bütün kayıtları çabucak siliyor ve en önemlisi auto-increment değerini de sıfırlıyor. Yani yeni ekleyeceğin kayıt 1’den başlar tekrar. Performans açısından en hızlısı budur.

    2. Yavaş Yol (Şartlı Silme İçin): DELETE FROM tablo_adı; Eğer bu komutu sadece tablo adıyla kullanırsan tüm tabloyu boşaltır. Ama bu işlem biraz yavaştır ve auto-increment değerini sıfırlamaz. Eğer WHERE koşulu eklemeyeceksen TRUNCATE kullanmak her zaman daha mantıklı.

    Sen boşaltma dediğin için TRUNCATE TABLE yaz gitsin, en temiz çözüm o.

Bu soruları yanıtlayarak arkadaşlarınıza yardım edin
Farwa Malik Eksi bakiye Soru sordu 2 yıl önce
Kenya için vize gerekiyor mu?
Tita Eksi bakiye Soru sordu 15 yıl önce
when was article 2 of the constitution ratified
Dreves Eksi bakiye Soru sordu 15 yıl önce
what does 3 and 2 mean ryder cup
Anonim Eksi bakiye Soru sordu 2 yıl önce
2 izzettin Keykavus kimdir?
Laura Eberhart Eksi bakiye Soru sordu 2 yıl önce
How is Vite so fast?
nayile Eksi bakiye Soru sordu 15 yıl önce
who does she marry in princess diaries 2
Par-Henrik Eksi bakiye Soru sordu 2 yıl önce
2 saat kaç saniyedir
Kyung Eksi bakiye Soru sordu 2 yıl önce
2 kedi evde 1 hafta yalnız kalır mı?
Axl Eksi bakiye Soru sordu 15 yıl önce
o with a slash through it alt code
Liisi Eksi bakiye Soru sordu 15 yıl önce
division 2 track and field colleges in pa