মাইএসকিউএল-তে বিআইটি এবং টিনআইএনটির মধ্যে পার্থক্য কী?


106

কোন ক্ষেত্রে আপনি কোনটি ব্যবহার করবেন? পার্থক্য কি অনেক আছে? কোনটি আমি সাধারণত বুলেঁসগুলি সঞ্চয় করার জন্য অধ্যবসায় ইঞ্জিন দ্বারা ব্যবহার করি?

উত্তর:


122

একটি টিনআইএনটি একটি 8-বিট পূর্ণসংখ্যা মান, একটি বিআইটি ফিল্ড 1 বিট, বিআইটি (1) এবং 64 বিট, বিআইটি (64) এর মধ্যে সঞ্চয় করতে পারে। বুলিয়ান মানগুলির জন্য, বিআইটি (1) বেশ সাধারণ।


10
একটি টিনআইএনটি এবং বিআইটি (8) এর মধ্যে পার্থক্য কী?
পেসারিয়ার

16
TINYINT স্বাক্ষরিত বা স্বাক্ষরযুক্ত এবং নেতিবাচক সংখ্যার সাথে সম্পর্কিত হতে পারে। বিট কেবল ডেটা স্বাক্ষর না করে বিটগুলি সঞ্চয় করে, আপনি নিজেই এমএসবি ব্যাখ্যার বাকী।
সংজ্ঞায়িত করুন

4
এড়ানোর বিভ্রান্তির এটি যোগ করা উচিত যে TINYINT এবং বিট (1) তাদের পার্থক্য না সংগ্রহস্থল আবশ্যকতা এবং যে bool এবং বুলিয়ান TINYINT (1) জন্য প্রতিশব্দের হয় সাংখ্যিক প্রকার সংক্ষিপ্ত বিবরণ
টিমো স্ট্রোটম্যান

59

সংখ্যার প্রকারের ওভারভিউ থেকে ;

বিআইটি [(এম)]

বিট-ফিল্ড টাইপ। এম 1 থেকে 64 পর্যন্ত মূল্য প্রতি বিটের সংখ্যা নির্দেশ করে M এম বাদ দিলে ডিফল্ট 1 হয়।

এই ডাটা টাইপটি মাইএসএএমএল-এর জন্য মাইএসকিউএল 5.0.3 এ যুক্ত করা হয়েছিল এবং 5.0.5-এ মেমোরি, ইনোডিবি, বিডিবি এবং এনডিবিসিএলসটারে প্রসারিত হয়েছিল। 5.0.3 এর আগে, বিআইটি TINYINT (1) এর প্রতিশব্দ।

টিনইন্ট [(এম)] [নিবন্ধিত] [জেরোফিল]

খুব ছোট একটি পূর্ণসংখ্যা স্বাক্ষরিত ব্যাপ্তিটি -128 থেকে 127 The

অতিরিক্তভাবে এটি বিবেচনা করুন;

বুল, বুলিয়ান

এই ধরণেরগুলি TINYINT (1) এর প্রতিশব্দ। শূন্যের মানকে মিথ্যা বলে বিবেচনা করা হয়। অ-শূন্য মানগুলি সত্য বলে বিবেচিত হয়।


12
আপনি বলছেন যে booleanএটি একটি বাইট লাগবে যদিও এর সত্যতা সামান্য মাত্র, সুতরাং একটি বিআইটি (1) v5.0.3 এর পরে আরও ভাল?
পেসারিয়ার

3
হ্যাঁ @ পেসারিয়র। বুলিয়ান হ'ল একটি সংখ্যা ক্ষেত্রের জন্য একটি কুৎসিত নাম।
এক্সেল কস্টাস পেনা

7
প্রকৃত সঞ্চয়স্থান হিসাবে এখনও বিআইটি (1) সর্বনিম্ন এক বাইট দখল করে। বিআইটি (এম) = (এম + 7) / 8 বাইট (1 + 7) / 8 = 1 বাইট দেখুন সাংখ্যিক প্রকার সংগ্রহস্থল আবশ্যকতা
ড্রাজেন জেলভুক

1
পরিবর্তে এর জন্য উপাধি আছে BOOL/ দুঃখজনক । অবশ্যই, তারা সকলেই একটি সম্পূর্ণ বাইট দখল করে, তবে শব্দার্থিকভাবে আরও অনেক বেশি উপযুক্ত হবে। BOOLEANTINYINT(1)BITBIT
MestreLion

38

এই সমস্ত তাত্ত্বিক আলোচনা দুর্দান্ত, তবে বাস্তবে, যদি আপনি মাইএসকিউএল এবং সত্যই এসকিউএল সার্ভারের জন্য ব্যবহার করেন তবে আপনার বুলিয়ানদের জন্য নন-বাইনারি ডেটা থাকা সহজ কারণ যে আপনি যখন কাজ করেন তখন এটি কাজ করা সহজ for ডেটা আউটপুট, পুনরায় অনুসন্ধান এবং আরও। এটি বিশেষত গুরুত্বপূর্ণ যদি আপনি মাইএসকিউএল এবং এসকিউএল সার্ভারের মধ্যে আন্তঃআরক্ষীয়তা অর্জন করার চেষ্টা করছেন (যেমন আপনি উভয়ের মধ্যে ডেটা সিঙ্ক করেন), কারণ বিআইটি ডেটাটাইপ হ্যান্ডলিং তাদের দুজনের মধ্যে আলাদা। বাস্তবে আপনি যদি একটি সংখ্যক ডেটাটাইপটি ব্যবহার করে থাকেন তবে আপনার অনেক কম ঝামেলা হবে। আমি মাইএসকিউএলকে বল বা বুলিয়ান যা টিনআইএনটি (1) হিসাবে সঞ্চিত হয় তার সাথে আটকে থাকার জন্য সুপারিশ করব। এমনকি মাইএসকিউএল ওয়ার্কবেঞ্চ এবং মাইএসকিউএল প্রশাসক যেভাবে বিআইটি ডেটাটাইপ প্রদর্শন করেন তা দুর্দান্ত নয় (এটি বাইনারি ডেটার জন্য সামান্য প্রতীক)।


1
আমার মতে এটি আমার দোষ নয়, কিছু ইন্টারফেস ইত্যাদি সঠিক বাইনারি ডেটা ভুলভাবে ব্যাখ্যা করে। যদি কোনও প্রশাসক (আমাকে অন্তর্ভুক্ত) কিছু প্রতীক সম্পর্কে অভিযোগ করে (মাইএসকিউএল র্রোকবেঞ্চ উল্লেখ করে) তবে এটি যে দোষ হিসাবে আমার সঠিক (বাইনারি) ডেটাটি প্রতীক হিসাবে ভুল ব্যাখ্যা করেছে যা এর বিষয়বস্তু সম্পর্কে কোনও তথ্য দেয় না এর দোষ fault সুতরাং মাইএসকিউএল / ওরাকল ভুল করেছে এবং আমি কেবল আমার প্রোগ্রামিং ধারণাটি পরিবর্তন করতে রাজি নই কারণ যে কেউ ভুল করেছে।
ম্যাটমার্বন

11

বিআইটি-তে কেবল 0 এবং 1 (এবং ক্ষেত্রটি NULL হিসাবে সংজ্ঞায়িত না করা থাকলে NULL) করা উচিত। TINYINT (1) এমন কোনও মানকে মঞ্জুরি দেয় যা একক বাইটে সংরক্ষণ করতে পারে, -128..127 বা 0..255 এটি স্বাক্ষরহীন কিনা তা নির্ভর করে (1 টি দেখায় যে আপনি কেবল একটি একক অঙ্ক ব্যবহার করতে চান, তবে এটি করে আপনাকে বৃহত্তর মান সংরক্ষণ করা থেকে বিরত রাখবেন না)।

5.0.3 এর চেয়ে পুরানো সংস্করণগুলির জন্য, বিআইটি TINYINT (1) হিসাবে ব্যাখ্যা করা হয়, সুতরাং সেখানে কোনও পার্থক্য নেই।

বিআইটির একটি "এটি একটি বুলিয়ান" শব্দার্থক রয়েছে, এবং কিছু অ্যাপস TINYINT (1) কে একইভাবে বিবেচনা করবে (মাইএসকিউএল এটির সাথে আচরণ করার কারণে) তাই অ্যাপ্লিকেশন কলামটি চেক বাক্স হিসাবে ফর্ম্যাট করতে পারে যদি তারা টাইপটি পরীক্ষা করে তবে এবং তার উপর ভিত্তি করে কোনও ফর্ম্যাট নিয়ে সিদ্ধান্ত নিন।


4

ভুল হতে পারে তবে:

টিনিইন্ট 0 এবং 255 এর মধ্যে একটি পূর্ণসংখ্যা

বিট হয় 1 বা 0 হয়

অতএব আমার কাছে বিটটি বুলিয়ানদের পছন্দ


দুঃখিত ভেবেছি আমরা এখানে টিএসসিকিএলে রয়েছি তাই অতএব আমি জানি না
অ্যালেন হার্ডি

0

আমার অভিজ্ঞতা থেকে আমি আপনাকে বলছি যে বিআইটি-র লিনাক্স ওএস ধরণের সমস্যা রয়েছে (উবুন্টু প্রাক্তন)। আমি উইন্ডোতে আমার ডিবি বিকাশ করেছি এবং আমি লিনাক্সে সমস্ত স্থাপনার পরে, আমার কাছে বিট ডেটা টাইপযুক্ত সারণী থেকে সন্নিবেশ বা নির্বাচন করা প্রশ্নগুলির সাথে সমস্যা হয়েছিল।

বিট আপাতত নিরাপদ নয়। আমি টিনিনেন্টে পরিবর্তন হয়েছি (1) এবং পুরোপুরি কাজ করেছি। আমি বোঝাতে চাইছি যে 1 বা 0 এবং টিনিনেন্ট (1) এর জন্য এটির জন্য ঠিক আছে যদি আপনার দ্বিগুণ হওয়ার জন্য কেবল একটি মান প্রয়োজন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.