- লেখক Alex Aldridge [email protected].
- Public 2023-12-17 13:33.
- সর্বশেষ পরিবর্তিত 2025-01-23 11:01.
মুছুন বনাম ছাঁটা
এসকিউএল (স্ট্রাকচার কোয়েরি ল্যাঙ্গুয়েজ) উভয় কমান্ড, ডিলিট এবং ট্রানকেট ডাটাবেসের টেবিলে সংরক্ষিত ডেটা থেকে মুক্তি পেতে ব্যবহৃত হয়। মুছে ফেলুন একটি DML (ডেটা ম্যানিপুলেশন ল্যাঙ্গুয়েজ) বিবৃতি এবং এটি একটি টেবিলের কিছু বা সমস্ত সারি সরিয়ে দেয়। 'Where clause' ব্যবহার করা হয় সেই সারিগুলিকে নির্দিষ্ট করতে যেগুলিকে মুছে ফেলার জন্য, এবং Whore clauseটি Delete স্টেটমেন্টের সাথে ব্যবহার করা না হলে, এটি টেবিলের সমস্ত ডেটা সরিয়ে দেয়। Truncate হল একটি DDL (ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) স্টেটমেন্ট, এবং এটি টেবিল থেকে সম্পূর্ণ ডেটা সরিয়ে দেয়। এই উভয় কমান্ডই টেবিলের কাঠামো এবং টেবিলের রেফারেন্সগুলিকে ধ্বংস করে না এবং শুধুমাত্র প্রয়োজনীয় ডেটা মুছে ফেলা হয়।
বিবৃতি মুছুন
মুছুন বিবৃতি ব্যবহারকারীকে একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে একটি ডাটাবেসের বিদ্যমান টেবিল থেকে ডেটা সরাতে দেয় এবং এই শর্তটি নির্ধারণের জন্য 'কোথায় ধারা' ব্যবহার করা হয়। ডিলিট কমান্ডকে একটি লগড এক্সিকিউশন হিসাবে উল্লেখ করা হয়, কারণ এটি একবারে শুধুমাত্র একটি সারি মুছে দেয় এবং লেনদেন লগে প্রতিটি সারি মুছে ফেলার জন্য একটি এন্ট্রি রাখে। সুতরাং, এটি অপারেশন ধীর করে তোলে। ডিলিট একটি ডিএমএল স্টেটমেন্ট, এবং তাই কমান্ড চালানোর সময় এটি স্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ হয় না। অতএব, প্রয়োজনে আবার ডেটা অ্যাক্সেস করতে ডিলিট অপারেশন রোল ব্যাক করা যেতে পারে। ডিলিট কমান্ড কার্যকর করার পরে, স্থায়ীভাবে পরিবর্তনগুলি সংরক্ষণ করার জন্য এটি প্রতিশ্রুতিবদ্ধ বা রোল ব্যাক করা উচিত। ডিলিট স্টেটমেন্ট ডাটাবেস থেকে টেবিলের টেবিল স্ট্রাকচার সরিয়ে দেয় না। এছাড়াও এটি টেবিল দ্বারা ব্যবহৃত মেমরি স্পেস ডিলোকেট করে না।
মুছুন কমান্ডের জন্য সাধারণ সিনট্যাক্স নীচে বর্ণিত হয়েছে৷
থেকে মুছুন
বা
কোথা থেকে মুছুন
ট্রাঙ্কেট স্টেটমেন্ট
ট্রাঙ্কেট স্টেটমেন্ট ডাটাবেসের বিদ্যমান টেবিল থেকে সমস্ত ডেটা সরিয়ে দেয়, কিন্তু এটি একই টেবিল কাঠামো, অখণ্ডতার সীমাবদ্ধতা, অ্যাক্সেসের সুবিধা এবং অন্যান্য টেবিলের সাথে সম্পর্ক সংরক্ষণ করে। সুতরাং, টেবিলটিকে আবার সংজ্ঞায়িত করার প্রয়োজন নেই, এবং ব্যবহারকারী আবার টেবিলটি পুনরায় ব্যবহার করতে চাইলে পুরানো টেবিল কাঠামো ব্যবহার করা যেতে পারে। ট্রাঙ্কেট ডেটা রাখার জন্য ব্যবহৃত ডেটা পৃষ্ঠাগুলি ডিললোকেটিং করে সম্পূর্ণ ডেটা সরিয়ে দেয় এবং শুধুমাত্র এই পৃষ্ঠাগুলি ডিললোকেশনগুলি লেনদেন লগে রাখা হয়৷ তাই, ট্রানকেট কমান্ড অপারেশনের জন্য শুধুমাত্র কিছু কম সিস্টেম এবং লেনদেন লগ রিসোর্স ব্যবহার করে, তাই এটি অন্যান্য সম্পর্কিত কমান্ডের চেয়ে দ্রুত। ট্রাঙ্কেট একটি ডিডিএল কমান্ড, তাই এটি বিবৃতিটি কার্যকর করার আগে এবং পরে স্বয়ংক্রিয় প্রতিশ্রুতি ব্যবহার করে। অত:পর, ছেঁটে ফেলা কোন ভাবেই ডাটা আবার রোল ব্যাক করতে পারে না। এটি কার্যকর করার পরে টেবিল দ্বারা ব্যবহৃত মেমরি স্পেস ছেড়ে দেয়। কিন্তু বিদেশী কী সীমাবদ্ধতা দ্বারা উল্লেখ করা টেবিলে ছেঁটে বিবৃতি প্রয়োগ করা যাবে না।
ট্রানকেট স্টেটমেন্টের সাধারণ সিনট্যাক্স নিচে দেওয়া হল।
ছাঁটা টেবিল
মুছুন এবং ছেঁটে ফেলার মধ্যে পার্থক্য কী?
1. মুছুন এবং ছেঁটে ফেলা কমান্ডগুলি টেবিলের কাঠামো বা টেবিলের অন্যান্য রেফারেন্সের ক্ষতি না করে একটি ডাটাবেসের বিদ্যমান টেবিল থেকে ডেটা সরিয়ে দেয়৷
2. যাইহোক, Delete কমান্ডটি শুধুমাত্র একটি প্রাসঙ্গিক শর্ত ব্যবহার করে একটি টেবিলের নির্দিষ্ট সারি মুছে ফেলার জন্য বা কোনো শর্ত ছাড়াই সমস্ত সারি মুছে ফেলার জন্য ব্যবহার করা যেতে পারে, যখন Truncate কমান্ডটি শুধুমাত্র টেবিলের সম্পূর্ণ ডেটা মুছে ফেলার জন্য ব্যবহার করা যেতে পারে।
৩. ডিলিট একটি ডিএমএল কমান্ড, এবং এটি প্রয়োজনে অপারেশনটি রোল ব্যাক করতে পারে, তবে ট্রাঙ্কেট একটি ডিডিএল কমান্ড, তাই এটি একটি স্বয়ংক্রিয় কমিট স্টেটমেন্ট এবং কোনওভাবেই ফিরিয়ে আনা যায় না। তাই ডাটাবেস ব্যবস্থাপনায় এই কমান্ডটি সাবধানে ব্যবহার করা গুরুত্বপূর্ণ।
৪. ট্রাঙ্কেট অপারেশন ডিলিট অপারেশনের তুলনায় কম সিস্টেম রিসোর্স এবং লেনদেন লগ রিসোর্স ব্যবহার করে, তাই, ট্রানকেটকে মুছে ফেলার চেয়ে দ্রুত বলে মনে করা হয়৷
৫. এছাড়াও, Delete টেবিল দ্বারা ব্যবহৃত স্থান ডিলোকেট করে না, যেখানে Truncate কার্যকর করার পরে ব্যবহৃত স্থান মুক্ত করে, তাই ডাটাবেস টেবিল থেকে সম্পূর্ণ ডেটা মুছে ফেলার ক্ষেত্রে Delete কার্যকর হয় না।
৬. যাইহোক, যখন টেবিলটি একটি বিদেশী কী সীমাবদ্ধতার দ্বারা উল্লেখ করা হয় তখন ট্রাঙ্কেট ব্যবহার করার অনুমতি দেওয়া হয় না, এবং সেক্ষেত্রে, ট্রাঙ্কেটের পরিবর্তে ডিলিট কমান্ড ব্যবহার করা যেতে পারে।
7. অবশেষে, ডেটাবেস ম্যানেজমেন্ট সিস্টেমে প্রয়োগ করার ক্ষেত্রে এই উভয় কমান্ডেরই সুবিধা এবং অসুবিধাও রয়েছে এবং ব্যবহারকারীর ভাল ফলাফল অর্জনের জন্য এই কমান্ডগুলি যথাযথভাবে ব্যবহার করার বিষয়ে সচেতন হওয়া উচিত।