.## ১. MySQL TINYINT কী?
MySQL‑এ, TINYINT হল একটি ডেটা টাইপ যা খুব ছোট পূর্ণসংখ্যা সংরক্ষণে ব্যবহৃত হয়। TINYINT ১ বাইট (৮ বিট) মেমরি ব্যবহার করে এবং সাইনড হলে -128 থেকে 127 পর্যন্ত, অথবা আনসাইনড হলে 0 থেকে 255 পর্যন্ত মান সংরক্ষণ করতে পারে। TINYINT প্রধানত ছোট সংখ্যামূল্য এবং Boolean ফ্ল্যাগগুলোকে দক্ষতার সঙ্গে পরিচালনা করতে ব্যবহৃত হয়।
TINYINT এর বৈশিষ্ট্যসমূহ
- মেমরি দক্ষতা :
TINYINTশুধুমাত্র ১ বাইট ব্যবহার করে, তাইINTবাBIGINTএর মতো অন্যান্য পূর্ণসংখ্যা টাইপের তুলনায় বেশি মেমরি সাশ্রয় করে। - সাইনড ও আনসাইনড অপশন : সাইনড TINYINT নেতিবাচক মান পরিচালনা করতে পারে, আর আনসাইনড অপশন ব্যবহার করলে সর্বোচ্চ ধনাত্মক রেঞ্জ বাড়ে।
TINYINT এর উদাহরণ ব্যবহার
নিম্নলিখিত উদাহরণে, ছোট সংখ্যামূল্য এবং ফ্ল্যাগ পরিচালনার জন্য TINYINT টাইপ ব্যবহার করে একটি টেবিল তৈরি করা হয়েছে।
CREATE TABLE user_status (
user_id INT PRIMARY KEY,
is_active TINYINT(1) NOT NULL DEFAULT 0
);
এই উদাহরণে, is_active কলামটি TINYINT(1) হিসেবে সংজ্ঞায়িত এবং ব্যবহারকারী সক্রিয় কিনা তা পরিচালনা করতে ব্যবহৃত হয়েছে। মান 0 মানে “নিষ্ক্রিয়”, এবং 1 মানে “সক্রিয়”।
২. TINYINT এর ব্যবহারিক কেসসমূহ
TINYINT ছোট পূর্ণসংখ্যা এবং Boolean মান পরিচালনার জন্য আদর্শ ডেটা টাইপ। এটি ডেটাবেসের পারফরম্যান্স সর্বোচ্চ করতে এবং স্টোরেজ ব্যবহার কমাতে ব্যাপকভাবে ব্যবহৃত হয়।
Boolean মান হিসেবে TINYINT ব্যবহার করা
MySQL‑এ নিবেদিত BOOLEAN টাইপ না থাকায়, TINYINT(1) সাধারণত Boolean মান পরিচালনার বিকল্প হিসেবে ব্যবহৃত হয়। সাধারণত, 0 মানে “মিথ্যা” এবং 1 মানে “সত্য”। এই পদ্ধতি ফ্ল্যাগগুলোকে সহজে পরিচালনা করতে সহায়তা করে।
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
এই উদাহরণে, নির্দিষ্ট ব্যবহারকারীর is_active মানটি টগল করা হয়েছে। এর ফলে Boolean মানের সহজ সুইচিং সম্ভব হয়।
ছোট সংখ্যামূল্য পরিচালনা করা
উদাহরণস্বরূপ, পণ্যের ইনভেন্টরি গণনা মতো খুব ছোট রেঞ্জের পূর্ণসংখ্যা পরিচালনায় TINYINT কার্যকর। যদি পণ্যের সংখ্যা ২৫৫‑এর বেশি না হয়, তবে TINYINT UNSIGNED ব্যবহার করে আনসাইনড সংখ্যার রেঞ্জের মধ্যে যথেষ্ট ডেটা পরিচালনা করা যায়।

৩. TINYINT এবং অন্যান্য পূর্ণসংখ্যা টাইপের তুলনা
MySQL বিভিন্ন পূর্ণসংখ্যা টাইপ সরবরাহ করে, এবং তাদের মধ্যে TINYINT সবচেয়ে ছোট। এর বিপরীতে, INT এবং BIGINT অনেক বড় মানের রেঞ্জ সংরক্ষণ করতে পারে। নিচে TINYINT এবং অন্যান্য প্রধান পূর্ণসংখ্যা টাইপের পার্থক্যগুলো দেওয়া হয়েছে।
INT এবং TINYINT এর পার্থক্য
INT ৪ বাইট ব্যবহার করে এবং -2147483648 থেকে 2147483647 পর্যন্ত মান সমর্থন করে, যেখানে TINYINT মাত্র ১ বাইট ব্যবহার করে এবং সাইনড হলে -128 থেকে 127, অথবা আনসাইনড হলে 0 থেকে 255 পর্যন্ত মান সমর্থন করে। তাই, উপযুক্ত রেঞ্জের মধ্যে ডেটা দক্ষতার সঙ্গে পরিচালনা করতে এবং মেমরি সাশ্রয় করতে TINYINT ব্যবহার করা যুক্তিযুক্ত।
অন্যান্য ছোট পূর্ণসংখ্যা টাইপের সঙ্গে তুলনা
TINYINT ছাড়াও, MySQL SMALLINT (২ বাইট) এবং MEDIUMINT (৩ বাইট) এর মতো ডেটা টাইপ সরবরাহ করে। প্রতিটি টাইপের বাইট সাইজ অনুযায়ী সংখ্যার রেঞ্জ ভিন্ন হয়, তাই সঠিক ডেটা টাইপ নির্বাচন করা গুরুত্বপূর্ণ।
৪. সাইনড ও আনসাইনডের মধ্যে নির্বাচন করা
MySQL‑এ, TINYINT টাইপকে সাইনড বা আনসাইনড হিসেবে সংজ্ঞায়িত করা যায়। পার্থক্যগুলো বোঝা এবং উপযুক্তভাবে নির্বাচন করা ডেটা পরিচালনাকে আরও দক্ষ করে।
আনসাইনড TINYINT এর সুবিধা
একটি আনসাইনড TINYINT (TINYINT UNSIGNED) 0 থেকে 255 পর্যন্ত মান সমর্থন করে, ফলে নেতিবাচক মানের প্রয়োজন না থাকলে এটি উপযোগী। উদাহরণস্বরূপ, ব্যবহারকারীর বয়স বা পণ্যের পরিমাণ সংরক্ষণে—যেখানে নেতিবাচক মান অপ্রয়োজনীয়—UNSIGNED ব্যবহার করলে ব্যবহারযোগ্য রেঞ্জ বাড়ে এবং ডেটা পরিচালনা আরও কার্যকর হয়।
সাইনড TINYINT এর সুবিধা
একটি সাইনড TINYINT -128 থেকে 127 পর্যন্ত মান সমর্থন করে, ফলে নেতিবাচক মানের প্রয়োজন হলে এটি উপযুক্ত। উদাহরণস্বরূপ, তাপমাত্রার মতো ডেটা যেখানে নেতিবাচক মান থাকতে পারে, সেখানে সাইনড অপশন ব্যবহার করা যুক্তিযুক্ত।
৫. TINYINT ব্যবহার করার উদাহরণ
.এখানে একটি উদাহরণ দেওয়া হল কীভাবে ডেটাবেসের মধ্যে ডেটা পরিচালনা করতে TINYINT ব্যবহার করা যায়। উদাহরণস্বরূপ, পণ্যের পরিমাণ পরিচালনা করার সময় আপনি টেবিলটি নিম্নরূপ সংজ্ঞায়িত করতে পারেন:
CREATE TABLE products (
product_id INT PRIMARY KEY,
quantity TINYINT UNSIGNED NOT NULL
);
এই উদাহরণে, পণ্যের ইনভেন্টরি quantity একটি unsigned TINYINT হিসেবে পরিচালিত হয়, যা 255 পর্যন্ত মান গ্রহণ করতে পারে। এছাড়াও, NOT NULL নির্ধারণ করে আপনি নিশ্চিত করেন যে সর্বদা একটি মান সেট করা থাকবে।
আপনি TINYINT ব্যবহার করে ব্যবহারকারীর স্ট্যাটাস ফ্ল্যাগগুলোকে সহজ এবং কার্যকরীভাবে পরিচালনা করতে পারেন। বিশেষত বড় পরিমাণের ডেটা হ্যান্ডল করার সময়, TINYINT ব্যবহার করলে সামগ্রিক ডেটাবেস পারফরম্যান্সে উন্নতি ঘটতে পারে।
৬. সারাংশ এবং সর্বোত্তম অনুশীলনসমূহ
TINYINT MySQL‑এর সবচেয়ে মেমরি-দক্ষ ডেটা টাইপগুলোর একটি এবং ছোট পূর্ণসংখ্যা ও ফ্ল্যাগগুলোকে কার্যকরভাবে পরিচালনা করার জন্য আদর্শ। বুলিয়ান মান বা ছোট সংখ্যার রেঞ্জের জন্য TINYINT ব্যবহার করে আপনি স্টোরেজ ব্যবহার এবং ডেটাবেস পারফরম্যান্স উভয়ই অপ্টিমাইজ করতে পারেন।


