MariaDB তে Virtual Columns হল এমন কলাম, যেগুলি শারীরিকভাবে ডেটাবেসে সংরক্ষিত থাকে না, কিন্তু তাদের মান অন্যান্য কলামের ডেটার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে গণনা করা হয়। এগুলি মূলত কম্পিউটেড কলাম হিসেবে কাজ করে, যেখানে কলামের মান একটি এক্সপ্রেশন বা ফাংশনের মাধ্যমে নির্ধারিত হয়।
Virtual Columns ব্যবহারের মাধ্যমে ডেটাবেসের স্টোরেজ খরচ কমানো যায়, কারণ এগুলি ডিস্কে সংরক্ষিত হয় না। পরিবর্তে, যখনই এই কলামগুলোকে রিট্রিভ করা হয়, তখন MariaDB এটি ডাইনামিকভাবে গণনা করে।
1. Virtual Columns এর সুবিধা
- স্টোরেজ সংরক্ষণ: Virtual Columns শারীরিকভাবে সংরক্ষিত হয় না, তাই অতিরিক্ত ডেটা স্টোর করতে হয় না।
- পারফরম্যান্স উন্নতি: ভার্চুয়াল কলামগুলি যদি ঠিকভাবে কনফিগার করা হয়, তবে এটি কুয়েরির পারফরম্যান্স বাড়াতে সহায়ক হতে পারে।
- ডেটার ইনটিগ্রিটি: ভার্চুয়াল কলামগুলো এক্সপ্রেশন বা ফাংশন ব্যবহার করে তৈরী হয়, যা ডেটার ইনটিগ্রিটি বজায় রাখে এবং সঠিক মান গণনা করতে সাহায্য করে।
2. MariaDB তে Virtual Columns কনফিগারেশন
MariaDB তে Virtual Columns ব্যবহার করার জন্য, GENERATED কীওয়ার্ড ব্যবহার করা হয়, যা STORED এবং VIRTUAL দুই ধরনের হতে পারে। এগুলোর মধ্যে প্রধান পার্থক্য হল যে:
- VIRTUAL: এই ধরনের ভার্চুয়াল কলামগুলো স্টোর করা হয় না, মান শুধুমাত্র রানটাইমে গণনা করা হয়।
- STORED: এই ধরনের ভার্চুয়াল কলামগুলোর মান ডিস্কে সংরক্ষিত হয় এবং কম্পিউট করা হয় যখন ডেটা ইনসার্ট বা আপডেট করা হয়।
উদাহরণ:
VIRTUAL Column তৈরি:
CREATE TABLE employees ( id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), full_name VARCHAR(100) GENERATED ALWAYS AS (CONCAT(first_name, ' ', last_name)) VIRTUAL );এখানে
full_nameএকটি ভার্চুয়াল কলাম, যাfirst_nameএবংlast_nameকলামের সংমিলিত মান হিসেবে গণনা করা হয়।STORED Virtual Column তৈরি:
CREATE TABLE orders ( order_id INT PRIMARY KEY, price DECIMAL(10, 2), quantity INT, total_amount DECIMAL(10, 2) GENERATED ALWAYS AS (price * quantity) STORED );এখানে
total_amountএকটি STORED ভার্চুয়াল কলাম, যাpriceএবংquantityকলামের মানের উপর ভিত্তি করে গণনা করা হয় এবং সিস্টেমে সংরক্ষিত থাকে।
3. Virtual Columns এর ব্যবহার এবং প্রয়োগ
1. কম্পাউন্ড ডেটার জন্য ভার্চুয়াল কলাম
যখন একাধিক কলামের মানের উপর ভিত্তি করে একটি নতুন মান তৈরি করতে হয়, তখন ভার্চুয়াল কলাম একটি খুব ভালো অপশন হতে পারে। যেমন, প্রথম নাম এবং শেষ নামের সংমিলন একটি নতুন full_name তৈরি করতে ভার্চুয়াল কলাম ব্যবহার করা যেতে পারে।
SELECT id, full_name FROM employees;
এটি first_name এবং last_name কলামের উপর ভিত্তি করে তৈরি হওয়া full_name প্রদর্শন করবে।
2. ডেটার অ্যানালাইসিসের জন্য ভার্চুয়াল কলাম
ধরা যাক, একটি অর্ডার টেবিলে price এবং quantity কলাম রয়েছে এবং আপনি চাচ্ছেন যে প্রতিটি অর্ডারের মোট মূল্য অটোমেটিক্যালি গণনা করা হোক। এ জন্য আপনি একটি STORED ভার্চুয়াল কলাম ব্যবহার করতে পারেন।
SELECT order_id, total_amount FROM orders;
এটি price * quantity এর ফলাফল হিসেবে total_amount দেখাবে।
3. ইনডেক্সিং এর জন্য ভার্চুয়াল কলাম
MariaDB তে ভার্চুয়াল কলামের উপর ইনডেক্স তৈরি করা সম্ভব, তবে ইনডেক্স শুধুমাত্র STORED ভার্চুয়াল কলামের জন্য করা যেতে পারে। এটি পারফরম্যান্স বৃদ্ধি করতে সহায়ক, বিশেষ করে যদি আপনি কোনও নির্দিষ্ট কলামের উপর ঘন ঘন কুয়েরি করেন।
CREATE INDEX idx_full_name ON employees (full_name);
এই কমান্ডটি full_name ভার্চুয়াল কলামের জন্য একটি ইনডেক্স তৈরি করবে।
4. Virtual Columns এর সীমাবদ্ধতা
- UPDATE করা যায় না: ভার্চুয়াল কলামের মান সরাসরি আপডেট করা যায় না। এর মান কেবলমাত্র এক্সপ্রেশন বা ফাংশনের মাধ্যমে গণনা করা হয়।
- STORED ভার্চুয়াল কলামগুলোর জন্য বেশি স্টোরেজ: STORED ভার্চুয়াল কলামগুলোর মান ডিস্কে সংরক্ষিত হওয়ার কারণে অতিরিক্ত স্টোরেজ প্রয়োজন হতে পারে।
- Complexity in Some Queries: যদি খুব জটিল এক্সপ্রেশন বা ফাংশন ব্যবহার করা হয়, তবে ভার্চুয়াল কলামের জন্য কুয়েরি কিছুটা ধীর হতে পারে।
5. MariaDB তে Virtual Columns এর টিউটোরিয়াল
Virtual Column যোগ করা
ধরা যাক, আপনি একটি products টেবিল তৈরি করতে চান যেখানে প্রতিটি পণ্যের price এবং discount কলামের উপর ভিত্তি করে discounted_price নামক একটি ভার্চুয়াল কলাম থাকবে।
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
price DECIMAL(10, 2),
discount DECIMAL(10, 2),
discounted_price DECIMAL(10, 2) GENERATED ALWAYS AS (price - (price * discount / 100)) VIRTUAL
);
এখন আপনি discounted_price কলামটি যেকোনো কুয়েরি বা রিপোর্টে ব্যবহার করতে পারেন, এবং এটি স্বয়ংক্রিয়ভাবে গননা হয়ে যাবে।
Virtual Column এর মান দেখানো
SELECT product_name, discounted_price FROM products;
এটি products টেবিল থেকে পণ্যের নাম এবং তার ডিসকাউন্টেড মূল্য প্রদর্শন করবে।
সারাংশ
MariaDB তে Virtual Columns একটি শক্তিশালী ফিচার যা ডেটা প্রসেসিংকে আরও কার্যকরী এবং সংরক্ষণের দৃষ্টিকোণ থেকে দক্ষ করে তোলে। VIRTUAL এবং STORED ভার্চুয়াল কলাম দুটি ব্যবহার করে আপনি এক্সপ্রেশন বা ফাংশনের মাধ্যমে কলামের মান গণনা করতে পারেন। তবে, ভার্চুয়াল কলাম ব্যবহারের সময় এর সীমাবদ্ধতা এবং পারফরম্যান্স সম্পর্কিত বিষয়গুলো মাথায় রাখতে হবে। সঠিকভাবে ব্যবহৃত হলে, এটি ডেটাবেস পারফরম্যান্স উন্নত করতে সহায়ক হতে পারে এবং স্টোরেজ খরচ কমাতে সাহায্য করতে পারে।
Read more