MySQL সঞ্চিত জেনারেটেড কলাম এবং MySQL ভার্চুয়াল জেনারেটেড কলাম -
ডিস্ক স্পেসের পরিপ্রেক্ষিতে
যদি আমরা ডিস্ক স্পেসের ক্ষেত্রে পার্থক্য দেখি তাহলে ভার্চুয়াল জেনারেটেড কলামগুলি কোনো ডিস্ক স্পেস নেবে না। অন্যদিকে, সঞ্চিত জেনারেটেড কলামটি ডিস্কে স্থান নেবে।
অপারেশনের পরিপ্রেক্ষিতে
যদি আমরা অপারেশনের পরিপ্রেক্ষিতে পার্থক্য দেখি তাহলে ভার্চুয়াল জেনারেট করা কলামগুলি হল INPLACE অপারেশন যার মানে হল যে সমস্ত ডেটা পুনরায় কপি না করেই টেবিলের সংজ্ঞা পরিবর্তন করা হয়েছে৷ অন্যদিকে, সঞ্চিত জেনারেটেড কলামগুলি হল একটি কপি অপারেশন এবং টেবিলে একটি নতুন কলাম যুক্ত করার জন্য এটির একই খরচ৷
গণনার পরিপ্রেক্ষিতে
ভার্চুয়াল জেনারেট করা কলামগুলিতে রিডিং অপারেশনের সময় এবং ট্রিগারের আগে মানগুলি ফ্লাইতে গণনা করা হয়৷ অন্যদিকে, সঞ্চিত জেনারেটেড কলামের মানগুলি প্রতিটি INSERT এবং UPDATE বিবৃতিতে আপডেট করা হয়৷
কখন ব্যবহার করতে হবে
আমাদের ডেটার জন্য ভার্চুয়াল কলাম ব্যবহার করার কথা বিবেচনা করা উচিত যেখানে পরিবর্তনগুলি উল্লেখযোগ্য সংখ্যক বার হয়৷ একটি ভার্চুয়াল কলামের খরচ একটি টেবিল ক্রমাগত পড়ার থেকে আসে এবং সার্ভারকে প্রতিবার গণনা করতে হয় সেই কলামটির মান কী হবে। অন্যদিকে, যখন ডেটা উল্লেখযোগ্যভাবে পরিবর্তন হয় না বা সৃষ্টির পরেও তখন আমাদের সংরক্ষণ করা কলাম ব্যবহার করার কথা বিবেচনা করা উচিত।