মাইএসকিউএল-তে টিনিন্যান্ট, স্মলিন্ট, মিডিয়ামিন্ট, বিগিন্ট এবং ইন্টের মধ্যে পার্থক্য কী?
কোন ক্ষেত্রে এগুলি ব্যবহার করা উচিত?
মাইএসকিউএল-তে টিনিন্যান্ট, স্মলিন্ট, মিডিয়ামিন্ট, বিগিন্ট এবং ইন্টের মধ্যে পার্থক্য কী?
কোন ক্ষেত্রে এগুলি ব্যবহার করা উচিত?
উত্তর:
তারা বিভিন্ন পরিমাণে জায়গা নেয় এবং তাদের গ্রহণযোগ্য মানের বিভিন্ন ব্যাপ্তি রয়েছে।
এসকিউএল সার্ভারের জন্য মানগুলির আকার এবং ব্যাপ্তি এখানে রয়েছে , অন্য আরডিবিএমএসের অনুরূপ ডকুমেন্টেশন রয়েছে:
NUMBER
ডেটাটাইপ আছে )দেখা যাচ্ছে তারা সবাই একই স্পেসিফিকেশন ব্যবহার করে (নীচে উল্লিখিত কয়েকটি ছোট ব্যতিক্রম সহ) তবে এই ধরণের বিভিন্ন সংমিশ্রণকে সমর্থন করে (ওরাকল অন্তর্ভুক্ত নয় কারণ এটিতে কেবল একটি NUMBER
ডেটাটাইপ রয়েছে, উপরের লিঙ্কটি দেখুন):
| SQL Server MySQL Postgres DB2
---------------------------------------------------
tinyint | X X
smallint | X X X X
mediumint | X
int/integer | X X X X
bigint | X X X X
এবং তারা একই মানের সীমাগুলি সমর্থন করে (নীচে এক ব্যতিক্রম সহ) এবং সবার একই স্টোরেজ প্রয়োজনীয়তা রয়েছে:
| Bytes Range (signed) Range (unsigned)
--------------------------------------------------------------------------------------------
tinyint | 1 byte -128 to 127 0 to 255
smallint | 2 bytes -32768 to 32767 0 to 65535
mediumint | 3 bytes -8388608 to 8388607 0 to 16777215
int/integer | 4 bytes -2147483648 to 2147483647 0 to 4294967295
bigint | 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615
"স্বাক্ষরযুক্ত" প্রকারগুলি কেবল মাইএসকিউএলে পাওয়া যায় এবং বাকিগুলি কেবল একটি উল্লেখযোগ্য ব্যতিক্রম সহ স্বাক্ষরিত রেঞ্জগুলি ব্যবহার করে: tinyint
এসকিউএল সার্ভারে স্বাক্ষরবিহীন এবং এর মান 0 থেকে 255 অবধি থাকে
প্রয়োজনীয় স্টোরেজটির আকার এবং কত বড় সংখ্যা হতে পারে
এসকিউএল সার্ভারে
টিনিনেন্ট 1 বাইট, 0 থেকে 255
স্মার্টিন্ট 2 বাইট, -2 ^ 15 (-32,768) থেকে 2 ^ 15-1 (32,767)
int 4 বাইট, -2 ^ 31 (-2.147.483.648) থেকে 2 ^ 31-1 (2.147.483.647)
বিগিন্ট 8 বাইট, -2 ^ 63 (-9,223,372,036,854,775,808) থেকে 2 ^ 63-1 (9,223,372,036,854,775,807)
আপনি সমস্ত 4 এ 1 নম্বর সংরক্ষণ করতে পারেন তবে একটি বিগিন্ট 8 টি বাইট ব্যবহার করবে যখন একটি টিনিনেন্ট 1 বাইট ব্যবহার করবে
এগুলি মাইএসকিউএল ডেটা প্রকার বলে মনে হচ্ছে।
ডকুমেন্টেশন অনুযায়ী তারা নেয়:
এবং, স্বাভাবিকভাবেই, ক্রমবর্ধমান সংখ্যার বিস্তৃতি গ্রহণ করুন।
যখন এই ডেটাটাইপগুলির বাস্তব জগতে ব্যবহার হয়, আপনি এটি বুঝতে খুব গুরুত্বপূর্ণ যে নির্দিষ্ট পূর্ণসংখ্যার প্রকারগুলি কেবলমাত্র একটি ওভারকিল বা এর অধীনে ব্যবহৃত হতে পারে। উদাহরণস্বরূপ, কোনও টেবিলে কর্মচারীর জন্য পূর্ণসংখ্যার ডেটাটাইপ ব্যবহার করে বলা হয় যে কর্মচারী একটি ওভারকিল হতে পারে যেহেতু এটি বিভিন্ন ধরণের পূর্ণসংখ্যার মানকে ~ণাত্মক 2 বিলিয়ন থেকে ধনাত্মক 2 বিলিয়ন বা শূন্য থেকে প্রায় 4 বিলিয়ন (স্বাক্ষরবিহীন) সমর্থন করে। সুতরাং, যদি আপনি ওয়ালমার্টের মতো মার্কিন যুক্তরাষ্ট্রে সবচেয়ে বড় নিয়োগকর্তাকে বিবেচনা করেন তবে প্রায় ২২.২ মিলিয়ন কর্মচারী কর্মচারীর অ্যাকাউন্টের কলামের জন্য একটি পূর্ণসংখ্যার ডেটাটাইপ ব্যবহার করে অপ্রয়োজনীয় হবে। এরকম ক্ষেত্রে আপনি উদাহরণস্বরূপ মিডিয়ামিন্ট (যা 0 থেকে 16 মিলিয়ন (স্বাক্ষরবিহীন) থেকে সমর্থন করে) ব্যবহার করে। বলার অপেক্ষা রাখে না যে যদি আপনার পরিসরটি অস্বাভাবিকভাবে বড় হওয়ার প্রত্যাশা করা হয় তবে আপনি বিগিন্টকে বিবেচনা করতে পারেন যা আপনি ড্যানিয়েলের কাছ থেকে দেখতে পাচ্ছেন '
পার্থক্য হ'ল প্রতিটি পূর্ণসংখ্যার জন্য বরাদ্দকৃত মেমরির পরিমাণ এবং তারা প্রত্যেকে কত বড় সংখ্যক সঞ্চয় করতে পারে।
ডেটা ধরণের রেঞ্জ স্টোরেজ
bigint -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 8 Bytes
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes
smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes
tinyint 0 to 255 1 Byte
উদাহরণ
নিম্নলিখিত উদাহরণটি বিগিন্ট, ইনট, স্মার্টিন্ট এবং টিনিনেন্ট ডেটা টাইপ ব্যবহার করে একটি সারণী তৈরি করে। মানগুলি প্রতিটি কলামে sertedোকানো হয় এবং নির্বাচনী বিবৃতিতে ফিরে আসে।
CREATE TABLE dbo.MyTable
(
MyBigIntColumn bigint
,MyIntColumn int
,MySmallIntColumn smallint
,MyTinyIntColumn tinyint
);
GO
INSERT INTO dbo.MyTable VALUES (9223372036854775807, 214483647,32767,255);
GO
SELECT MyBigIntColumn, MyIntColumn, MySmallIntColumn, MyTinyIntColumn
FROM dbo.MyTable;